2016-03-03 59 views
0

如果我有一個ViewController,它有一個實例ShowAlertshowAlert會顯示一個提醒控制器,但有什麼方法可以讓實例showAlert知道誰實例化了它?即有什麼辦法不通過selfShowAlert的實例變量viewController,而是通過parent或類似的推論呢?我應該以某種方式委託這個,而不是?Swift:將實例變量附加到視圖控制器

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

http://stackoverflow.com/questions/24594238/swift-how-to-pass-a-view-controllers-reference-to-a-sub-uiview-class – Shades

回答

1

肯定,而不是:

func now() { 

做:

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

,你可以這樣調用它:

showAlert.now(self) 
+0

太棒了!謝謝 – Alex

相關問題