Swift:将实例变量附加到视图控制器

时间:2016-03-03 01:05:06

标签: swift

如果我有一个ViewController,其实例为ShowAlertshowAlert将显示一个警报控制器,但实例showAlert是否可以知道谁实例化它?即是否有任何方法不将self传递给ShowAlert的实例变量viewController,而是通过parent或类似的方式推断它?我应该以某种方式委托这个吗?

class ViewController: UIViewController {
    var showAlert = ShowAlert()

    override viewDidLoad() {
        super.viewDidLoad()
        showAlert.viewController = self
        showAlert.now()
    }
}

class ShowAlert: NSObject {

    var viewController: UIViewController!

    func now() {
        let alert = UIAlertController(title: "Title", message: "Message", preferredStyle: .Alert)
        viewController.showViewController(alert, sender: self)
    }

}

谢谢 -

1 个答案:

答案 0 :(得分:1)

确定而不是:

func now() {

做的:

func now(parentVC : UIViewController ){
  let alert = UIAlertController(title: "Title", message: "Message", preferredStyle: .Alert)
    parentVC.showViewController(alert, sender: self)
}

你可以这样称呼:

showAlert.now(self)