我有两个使用导航栏的 View Controller 。第一个 viewController 显示我在第二个 viewController 上更改的一些数据。
因此,如果我加载第二个 viewController,导航栏中会出现一个后退按钮,我可以更改我的值(并且它们被存储,我使用了调试器)。我的问题是,点击后退按钮进入我的firstView Controller 后,它没有调用它的viewDidLoad
方法。很明显,当不调用此函数时,根本没有更新的值。
第一次启动时,viewDidLoad
方法被调用并执行我希望它执行的操作。在 viewController 之间来回切换后,不会再次调用该方法。
有什么解决办法吗?
谢谢!
编辑:
已解决
我不想删除我的问题,也许有人也需要这个:
每次 View 出现时都会调用此方法,默认情况下可能未定义:
-(void)viewDidAppear:(BOOL)animated
{
NSLog(@"View appeared.");
}
最佳答案
但是viewWillAppear
中的更新代码(如[[self view] setNeedsDisplay];
)。
为了明确起见:加载 View 时会调用viewDidLoad
。这会在第一次显示 View 时发生。当您导航到下一个 View 时,仍然可以加载第一个 View (取决于您的代码)。因此,当您导航回该 View 时,将不会调用 viewDidLoad ,因为该 View 仍然存在。
但是每次要显示 View 时(例如,当您导航回此 View 时),都会调用 viewWillAppear
和 viewDidAppear
方法。
希望有帮助。
关于ios - ViewController 加载后不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8212580/