如何重新加载父UINavigationController?

问题描述:

我的RootViewController包含一个表格视图和一个导航栏。点击一行后,另一个视图控制器被推送到堆栈,即SecondViewController。如果我点击后退按钮,SecondViewController会弹出堆栈,但父视图控制器的数据已过期。如何重新加载父UINavigationController?

我该如何重新加载RootViewController的数据?我的第一个尝试是实现

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated 

并再次调用viewdidLoad。

问题是,在第一次加载时,viewDidLoad会被调用两次。

在viewWillAppear:方法而不是viewDidLoad中加载表中的数据。 viewWillAppear将在每次您的视图出现时调用,而viewDidLoad仅在视图创建时调用一次。

因此,在viewWillAppear中加载数据:将确保您的表格在显示时具有最新的数据。

+0

正是我在找什么。谢谢一堆! – 2009-05-25 19:27:35