gpt4 book ai didi

iphone - 应用程序进入前台后,viewDidAppear 不再触发

转载 作者:技术小花猫 更新时间:2023-10-29 11:15:23 25 4
gpt4 key购买 nike

我在我的 iPhone 应用程序代码中发现一个问题是 viewDidAppear 方法并不总是触发。当您启动应用程序时,事件会按预期触发。但是,如果我使用支持多任​​务处理的手机关闭应用程序并重新打开。我的 viewDidAppear 事件不再触发。

我的 View 是从 Nibs 加载的,我使用 viewDidUnload 进行清理(释放并清除所有 socket )。我的 View 嵌套在侧栏和标签栏中,然后是导航 Controller 。当 Nib 重新加载时,我看起来事件没有正确连接。关于我做错/遗漏的事情以及如何解决这个问题的任何想法?

提前致谢。

UPDATE 我并不是说当应用第一次进入前台时事件没有被触发。我的意思是该事件再也不会触发。即使在选项卡之间切换或在导航 View 中移动时也是如此。

例子:

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"viewDidAppear called");
}

此代码位于两个 View 中,每个 View 位于不同的选项卡上。每次我在选项卡之间切换时,“viewDidAppear called”都会写入日志。当我关闭并重新打开应用程序并在选项卡之间切换时,这不再发生。其他按钮事件正常触发。

最佳答案

顺便说一句,viewDidUnload 方法的命名真的很糟糕顺便说一句——它不是 viewDidLoad 的“对立面”,只有在内存不足的情况下才会调用它由于当时不可见,该 Controller 的 View 已卸载。

(原创,不太相关的答案:)

请看我对这个类似问题的回答:

Why does viewWillAppear not get called when an app comes back from the background?

基本上,viewDidAppear 在您的 UIViewController 的 View 被添加到应用程序的 UIWindow 层次结构之后被调用。后台运行然后恢复应用程序不会改变您在这方面的 View ,因此不会调用 viewDidAppear - 这是正确的行为,而不是错误。查看 UIViewController 的 API 文档。

关于iphone - 应用程序进入前台后,viewDidAppear 不再触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5417318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com