我有2個VC,A和B,當A呈現B作爲FormSheet類型時,方法viewWillDisappear
在A中沒有調用。所以當我在B中做某件事,然後回到A時,ViewWillAppear
沒有被調用。那麼如何讓A中的viewWillAppear
叫?我見過某處,但我沒有找到明確的答案。爲什麼viewWillAppear不是調用,而是將另一個ViewController作爲FormSheet使用
在BI設置:
protocol CallBackViewWillAppearDelegate: class {
func callBackViewWillAppear(controller: UserRightRoleTableViewController)
}
並委派變量:
weak var callBackViewWillAppearDelegate: CallBackViewWillAppearDelegate?
,並在返回按鈕:
@IBAction func backToUserRightButtonAction(sender: AnyObject) {
callBackViewWillAppearDelegate?.callBackViewWillAppear(self)
dismissViewControllerAnimated(true, completion: nil)
}
在AI導入協議並設置協議功能:
func callBackViewWillAppear(controller: UserRightRoleTableViewController) {
viewWillAppear(true)
}
不要直接從'callBackViewWillAppear'調用'viewWillAppear'方法。否則,你的應用程序會多次調用'super.viewWillAppear'方法。 – mbelsky
不,因爲我忘了爲callbackViewWillAppearDelegate :)設置值。當我設置時,它就會工作。 – Khuong