Ios 如何检查导航控制器中的其他页面按下“后退”按钮后视图控制器是否出现?
我在Ios 如何检查导航控制器中的其他页面按下“后退”按钮后视图控制器是否出现?,ios,swift,uinavigationcontroller,viewcontroller,Ios,Swift,Uinavigationcontroller,Viewcontroller,我在detailViewController中,当我按下后退按钮时,它会转到mainViewController。如何在mainViewController中确定它不是新加载的,而是在detailViewController中按下了后退按钮 我想在mainViewController中重新加载一个表,因此我试图确定它是新加载的还是来自detailViewController。任何帮助都将受到极大的感谢和支持。谢谢。在加载之前,覆盖mainViewController中的ViewWillAppea
detailViewController
中,当我按下后退按钮时,它会转到mainViewController
。如何在mainViewController
中确定它不是新加载的,而是在detailViewController
中按下了后退按钮
我想在
mainViewController
中重新加载一个表,因此我试图确定它是新加载的还是来自detailViewController
。任何帮助都将受到极大的感谢和支持。谢谢。在加载之前,覆盖mainViewController中的ViewWillAppease()函数以执行任务
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated: animated)
//do tasks when coming from detailViewController
}
编辑:
如果您不希望view中的代码在新加载时显示为ecexute,还有另一种方法,但我不知道这是否是最好的方法。在后退按钮处理程序中,执行以下操作:
//pop the detailViewController
self.navigationController.popViewControllerAnimated(true)
//mainViewController is now at the top
//safely unpack it
if let parentVC = self.navigationController.topViewController as? mainViewController {
//call a custom function in mainViewController which will
//execute only the stuff you want upon back button press
parentVC.customFunction()
}
在加载之前,重写mainViewController中的ViewWillAspect()函数以执行任务
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated: animated)
//do tasks when coming from detailViewController
}
编辑:
如果您不希望view中的代码在新加载时显示为ecexute,还有另一种方法,但我不知道这是否是最好的方法。在后退按钮处理程序中,执行以下操作:
//pop the detailViewController
self.navigationController.popViewControllerAnimated(true)
//mainViewController is now at the top
//safely unpack it
if let parentVC = self.navigationController.topViewController as? mainViewController {
//call a custom function in mainViewController which will
//execute only the stuff you want upon back button press
parentVC.customFunction()
}