ios - swift/iOS8 : set imageView for next View Controller before Segue

标签 ios swift uiimageview

根据一些参数,我试图在第二个 VC 上设置一个图像,但不知何故它总是返回 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")
        }
    }

detail VC基本“一无所有”:

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 Controller 停止时,它会告诉我 imageview 实际上是空的,这是否只在细节 vc 显示一次后才设置?

€dit:设置字符串并在第二个 VC 上打印出来效果非常好

最佳答案

你在哪里设置图像? 在 prepareForSegue 中,UIImageView IBOutlet 将不会加载。您必须像下面这样在 DetailVC 类中声明一个图像变量,并在 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.

关于ios - swift/iOS8 : set imageView for next View Controller before Segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27919927/

相关文章:

iphone - networkActivityIndi​​catorVisible 不工作(同步请求)

ios - MPMoviePlayerViewController 不在 Swift 中播放 .mp4 视频

ios - Swift iOS - 如何将计时器放在 Firebase TransactionBlock 上以防止它在特定时间段内增加

ios - UIImageView 上的点击手势

ios - 将 UIImageView 添加到 subview 中

ios - 在 UIScrollView 内的可缩放 UIIMageView 周围绘制一个 1 像素宽的框

ios - 谷歌应用索引 ios 搜索结果

ios - 从现有 NSArray 创建新 NSArray 的标准约定是什么?

ios - 如何从 CloudKit 容器中删除?

swift - MapKit - iOS 13 - 如何在用户位置注释的顶部显示图钉注释?