【发布时间】:2011-03-24 09:51:59
【问题描述】:
我在我的 iPhone 应用程序代码中发现了一个问题,即 viewDidAppear 方法并不总是触发。当您启动应用程序时,事件会按预期触发。但是,如果我使用能够进行多任务处理的手机关闭应用程序并重新打开。我的 viewDidAppear 事件不再触发。
我的视图是从 Nibs 加载的,我使用 viewDidUnload 来清理(释放并清除所有出口)。我的视图嵌套在侧边和标签栏中,然后是导航控制器。当笔尖重新加载时,我看起来事件没有正确连接。关于我做错了什么/缺少什么以及如何解决这个问题的任何想法?
提前致谢。
UPDATE 我并不是说当应用程序第一次进入前台时没有触发该事件。我的意思是该事件永远不会再次触发。即使在选项卡之间切换或在导航视图中移动时也是如此。
例子:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"viewDidAppear called");
}
此代码放置在两个视图中,每个视图位于不同的选项卡上。每次我在选项卡之间切换时,“viewDidAppear called”都会写入日志。当我关闭并重新打开应用程序并在选项卡之间切换时,这种情况不再发生。其他按钮事件正常触发。
【问题讨论】:
-
其他 NSLogs 是否还在出现?我的意思是,这不是所有 NSLog 的问题,只是在您后台恢复并恢复后什么都做不了?
-
您是否在 UIViewControllers 方面对您的 UI 设置进行了异常或复杂的操作?例如,您是否在嵌套 Apple 建议不要嵌套的东西?
标签: iphone cocoa-touch ios ipad events