如果我有一个ViewController
,其实例为ShowAlert
。 showAlert
将显示一个警报控制器,但实例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)
}
}
谢谢 -
答案 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)