【发布时间】:2017-03-13 13:18:57
【问题描述】:
我正在尝试将图像发送到另一个视图控制器。
override func prepare(for segue: UIStoryboardSegue, sender: Any!) {
if (segue.identifier == "cropSegue") {
let crop : CropViewController = segue.destination as! CropViewController
crop.cropImage = image
print("prepared")
}
}
在接收端
class CropViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var cropImage : UIImage!
override func viewDidLoad() {
super.viewDidLoad()
self.imageView.image = cropImage
// Do any additional setup after loading the view.
}
我不确定出了什么问题,但图像没有显示,即使正在调用准备 segue。关于为什么的任何想法?
【问题讨论】:
-
将您的 CropViewController 代码移动到 viewWillAppear()。我敢打赌它会奏效。此外,您可以设置断点以查看发生了什么。
-
您确定此时
crop.cropImage = image您的image不为零吗? -
我的猜测是你的segue标识符不是“cropSegue”,而是设置一个断点并找出来。 prepareForSegue 发生了什么
-
您的代码应该可以完美运行。请交叉检查 segue name,确保 segue 期间 image 不是 nil,并检查所有 outlets 是否连接正确。