ios - ViewController 加载后不会更新

标签 ios xcode uiviewcontroller uinavigationcontroller

我有两个使用导航栏的 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 时),都会调用 viewWillAppearviewDidAppear 方法。

希望有帮助。

关于ios - ViewController 加载后不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8212580/

相关文章:

javascript - 为什么 Cordova 2.7.0 JS 貌似不能在远程页面上工作了?

ios - 具有自定义单元格框架的 indexPathForItemAtPoint

objective-c - 设置 NSDateComponents 会导致不正确的 NSDate

ios - 适用于 iOS13.1.2 (17A860) 的 DeviceSupport 文件

ios - UINavigationController:在每次转换后显示具有不同方向的嵌入式 View Controller ?

ios - 我们可以在 IOS 应用程序的 UIWebview 中将条款和条件作为 PDF 加载吗?

SwiftUI:调整弹出窗口的大小以适合

swift - PHPhotoLibrary 出错,无法保存视频

ios - 按需重新加载 UITabBarController

swift - instantiateViewControllerWithIdentifier 正在崩溃(发现为零)