我有一个UINavigationController,它有一个UITableViewController作为其根控制器。我在viewWillAppear中重新加载表视图的数据。当我在表视图中选择一个项目时,它将推送一个新的UIViewController,用户可以使用该UIViewController编辑将在表视图中显示的数据,然后单击导航的后面,UITableViewController的viewWillAppear刚刚未被调用,数据未重新加载。
所以在这种情况下我可以在哪里重新加载表视图的数据?
感谢。
答案 0 :(得分:1)
最简单的方法是使用UINavigationControllerDelegate
。有两种方法可供选择:
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated animated: Bool)
func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated animated: Bool)
在UITableViewController
(root)中,您应该添加UINavigationControllerDelegate
,并在您返回时调用方法navigationControllerWillShowViewController
。这是一个例子:
class RootTableViewController: UITableViewController, UINavigationControllerDelegate {
...
func navigationController(navigationController: UINavigationController, didShowViewController viewController: UIViewController, animated animated: Bool) {
//Will run
}
...
}
答案 1 :(得分:0)