Swift/iOS8: 在 Segue 之前为下一个 View Controller 设置 imageView
Swift/iOS8: set imageView for next View Controller before Segue
根据一些参数,我试图在第二个 VC 上设置图像,但不知何故它总是 returns null??
我就是这样做的:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
println("going forth!")
println(self.myButton.selected)
let controller = segue.destinationViewController as? DetailVC
if myButton.selected == true {
var newImage = UIImage(named:"Test1")
var oldImage = controller?.imageView.image
println(oldImage)
oldImage = newImage
} else {
var newImage = UIImage(named:"Test2")
var oldImage = controller?.imageView.image
println(oldImage)
oldImage = newImage
}
} else {
println("roflcopter")
}
}
详情VC主要有"nothing":
import UIKit
class DetailVC: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var testString:String!
@IBAction func goBacktoMain(segue: UIStoryboardSegue) {
println("going back")
}
override func viewDidLoad() {
super.viewDidLoad()
println("view Did Load")
println(testString)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
第二个 VC 通过 Storyboard 设置了默认图像,但是当我使用断点 @let 控制器停止时,它会告诉我图像视图实际上是空的,只有在细节 vc 显示过一次?
€dit:设置字符串并在第二个打印出来 VC 工作得很好
在目标 segue 中声明一个 UIImage 变量,将图像对象传递给它。
在目标对象上的 viewDidLoad 上,将图像分配给 imageView.Image 属性
很可能 Outlet 尚未初始化
你在哪里设置图像?
在 prepareForSegue
中,UIImageView IBOutlet
将不会加载。您必须像下面那样在 DetailVC
class 中声明一个图像变量,并在 viewDidLoad
.
中设置该图像
class DetailVC
{
var image:UIImage? = nil
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad()
{
imageView.image = image
}
}
在您的 prepareSegue
函数中,设置
let controller = segue.destinationViewController as? DetailVC
controller?.image = //Your Image according to conditions.
根据一些参数,我试图在第二个 VC 上设置图像,但不知何故它总是 returns null??
我就是这样做的:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "showDetail" {
println("going forth!")
println(self.myButton.selected)
let controller = segue.destinationViewController as? DetailVC
if myButton.selected == true {
var newImage = UIImage(named:"Test1")
var oldImage = controller?.imageView.image
println(oldImage)
oldImage = newImage
} else {
var newImage = UIImage(named:"Test2")
var oldImage = controller?.imageView.image
println(oldImage)
oldImage = newImage
}
} else {
println("roflcopter")
}
}
详情VC主要有"nothing":
import UIKit
class DetailVC: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var testString:String!
@IBAction func goBacktoMain(segue: UIStoryboardSegue) {
println("going back")
}
override func viewDidLoad() {
super.viewDidLoad()
println("view Did Load")
println(testString)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
第二个 VC 通过 Storyboard 设置了默认图像,但是当我使用断点 @let 控制器停止时,它会告诉我图像视图实际上是空的,只有在细节 vc 显示过一次?
€dit:设置字符串并在第二个打印出来 VC 工作得很好
在目标 segue 中声明一个 UIImage 变量,将图像对象传递给它。
在目标对象上的 viewDidLoad 上,将图像分配给 imageView.Image 属性
很可能 Outlet 尚未初始化
你在哪里设置图像?
在 prepareForSegue
中,UIImageView IBOutlet
将不会加载。您必须像下面那样在 DetailVC
class 中声明一个图像变量,并在 viewDidLoad
.
class DetailVC
{
var image:UIImage? = nil
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad()
{
imageView.image = image
}
}
在您的 prepareSegue
函数中,设置
let controller = segue.destinationViewController as? DetailVC
controller?.image = //Your Image according to conditions.