Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何检查导航控制器中的其他页面按下“后退”按钮后视图控制器是否出现?_Ios_Swift_Uinavigationcontroller_Viewcontroller - Fatal编程技术网

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()
}