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