单击UINavigationController的后退栏按钮时重新加载数据

时间:2015-05-13 16:00:48

标签: ios uinavigationcontroller uikit

我有一个UINavigationController,它有一个UITableViewController作为其根控制器。我在viewWillAppear中重新加载表视图的数据。当我在表视图中选择一个项目时,它将推送一个新的UIViewController,用户可以使用该UIViewController编辑将在表视图中显示的数据,然后单击导航的后面,UITableViewController的viewWillAppear刚刚未被调用,数据未重新加载。

所以在这种情况下我可以在哪里重新加载表视图的数据?

感谢。

2 个答案:

答案 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)

点击后退按钮时会调用viewWillAppear。如果你不相信我,只需在那里登录!很可能表格没有按照你想要的方式重新加载,因为表格数据源有问题。