我的RootViewController包含一个表视图和一个导航栏。点击一行后,另一个视图控制器被推送到堆栈,即SecondViewController。如果单击“返回”按钮,则会从堆栈中弹出SecondViewController,但父视图控制器的数据已过期。
我怎样才能重新加载RootViewController的数据?我的第一次尝试是实施
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
再次调用viewdidLoad。
问题是,在第一次加载时,viewDidLoad将被调用两次。
答案 0 :(得分:9)
在viewWillAppear:方法而不是viewDidLoad中加载表中的数据。 每次出现视图时都会调用viewWillAppear,而在创建视图时只调用一次viewDidLoad。
因此,在viewWillAppear中加载数据:将确保您的表在显示时具有最新数据。