目前我有4个小图像视图,用于显示从相机拍摄的图像。当我点击其中一个图像时,我希望它带我到一个单独的模态视图控制器,屏幕填充整个VC。下面的代码显示我已将4个无文字按钮附加到我的较小的imageViews,点击后我希望带我到我设置的单独的模态视图控制器。
imageView5是我在模态VC上设置的imageView,“bigImager”是segue标识符。
如果您有任何想法,请告诉我?
@IBAction func bigImage1(sender: AnyObject) {
if imageView1.image != nil {
print(sender.tag)
}
}
@IBAction func bigImage2(sender: AnyObject) {
if imageView2.image != nil {
self.performSegueWithIdentifier("bigImager", sender: self)
}
}
@IBAction func bigImage3(sender: AnyObject) {
if imageView3.image != nil {
self.performSegueWithIdentifier("bigImager", sender: self)
}
}
@IBAction func bigImage4(sender: AnyObject) {
if imageView4.image != nil {
self.performSegueWithIdentifier("bigImager", sender: self)
}
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "bigImager" {
let dvc: ImageViewController = segue.destinationViewController as! ImageViewController
dvc.imageView5.image = imageViewArray[sender!.tag].image
}
}
答案 0 :(得分:0)
检查prepareForSegue上的发件人是否为nil
答案 1 :(得分:0)
imageView5
是一个隐式解包的可选项吗?如果是这样,它可能尚未创建。
我建议将var image: UIImage?
属性添加到ImageViewController
。然后你可以这样设置:
if let dvc = segue.destinationViewController as? ImageViewController {
dvc.image = imageViewArray[sender!.tag].image
}
在ImageViewController
内,您可以在适当的时间设置图像。一种方法是使用didSet
:
class ImageViewController: UIViewController {
var image: UIImage? {
didSet {
updateViews()
}
}
var imageView5: UIImageView! {
didSet {
updateViews()
}
}
func updateViews() {
if imageView5 != nil {
imageView5.image = image
}
}
}
答案 2 :(得分:0)
显然我没有看到你为imageViewArray设置值的任何地方,请确保正确设置此数组。