在另一个视图控制器

时间:2015-10-23 16:23:22

标签: ios swift uiimage

我正在使用Swift 2.0并创建了这样的控制器:

class NewFortuneController: ViewController {
  @IBOutlet weak var cupPicture1: UIImageView!
.....

当我在不同的控制器时,如何访问和删除cupPicture1的图像?

1 个答案:

答案 0 :(得分:0)

您需要引用NewFortuneController才能执行此操作。

如果您使用segues并且它是您想要更改的目标控制器,则可以在prepareForSegue中执行此操作

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "some identifier" {
        if let controller = segue.destinationViewController as? NewFortuneController {
                controller.cupPicture1.image = UIImage(named:"image")
        }
    }
}

如果它是具有图像的源控制器,则必须在目标控制器中将引用设置回源控制器。

喜欢:

AnotherController: UIViewController {
    weak var sourceController: NewFortuneController?

    func setImageForSourceController() {
        sourceController?.image = UIImage(named:"image")
    }
}

然后在NewFortuneController的viewWillAppear上设置imageViewOutlet的图像

class NewFortuneController: ViewController {
    var image:UIImage?
    IBOutlet weak var cupPicture1: UIImageView!

    override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        cupPicture1.image = image
    }
}