如何在导航控制器按下按钮的某个其他页面之后检查视图控制器是否出现?

时间:2017-11-21 17:40:43

标签: ios swift uinavigationcontroller viewcontroller

我在detailViewController,当我按下后退按钮时,它会转到mainViewController。如何在mainViewController中确定它没有新载,但在detailViewController中按了后退按钮?

我想在mainViewController中重新加载一个表格,因此我正在尝试确定它是刚刚加载还是来自detailViewController。任何帮助将非常感激和投票。谢谢。

1 个答案:

答案 0 :(得分:2)

覆盖mainViewController中的viewWillAppear()函数,以便在加载之前执行任务。

override func viewWillAppear(animated: Bool) {
    super.viewWillAppear(animated: animated)

    //do tasks when coming from detailViewController
}

编辑:

如果您不希望viewWillAppear中的代码在重新加载时进行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()
}