我有一个View Controller,其值为0(标签),当我从另一个打开View Controller时,ViewController我设置viewDidAppear为在标签上设置值20.它工作正常,但是当我关闭我的应用程序,比再次我打开我的应用程序,但价值不因为改变viewDidLoad,viewDidAppear并viewWillAppear没有被调用.打开我的应用程序时如何打电话.我必须做什么applicationDidBecomeActive吗?
是否有任何方便的方法可以确定是否正在从处于后台模式的应用程序加载视图?
在 3.XI 中会依赖 viewDidLoad 进行一些初始化等操作,但是对于 4.X 则不是这种情况,因为您不能依赖于调用 viewDidLoad 方法。
我想避免在 appdelegate 中放置额外的标志来检测这一点,我宁愿在 UIViewController 中使用一种可靠的方法来执行此操作,但似乎无法在 UIViewController 的生命周期中找到任何可以帮助我的东西。
有任何想法吗?你如何处理这些情况?
我已经在我的iPhone应用程序代码中跟踪了一个问题,因为viewDidAppear方法并不总是触发.当您启动应用程序时,事件将按预期触发.但是,如果我使用能够进行多任务处理并重新打开的手机关闭应用程序.我的viewDidAppear事件不再触发.
我的视图是从Nibs加载的,我使用viewDidUnload来清理(释放和零所有出口).我的视图嵌套在侧面和标签栏然后导航控制器.当nib重新加载时,我看起来事件没有正确连线.我对错误/遗失的错误以及如何解决这个问题有所了解吗?
提前致谢.
更新我并不是说应用程序第一次进入前台时不会触发事件.我的意思是这个事件再也不会发生了.即使在标签之间切换或通过导航视图移动也是如此.
例:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"viewDidAppear called");
}
Run Code Online (Sandbox Code Playgroud)
此代码放在两个视图中,每个视图位于不同的选项卡上.每次我在选项卡之间交换"viewDidAppear called"都会写入日志.当我关闭并重新打开应用程序并在标签之间切换时,不再发生这种情况.其他按钮事件正常启动.
我制作一个测试应用程序并在设备上运行它.在第一次发布时,一切正常.然后我按主页按钮退出,然后按应用程序图标.似乎这次没有调用viewWillAppear.根据我的理解,每次视图显示在屏幕上时都会调用viewWillAppear,无论是由关闭视图控制器还是按下主页按钮然后重新启动它.
我想当用户从后台调用应用程序以从ViewController重新加载一个功能吗?
我有以下故事板.有一个OrderViewController,当我第一次打开应用程序时,它调用-(void) viewWillAppear: (BOOL) animated方法,但是当我打开另一个应用程序(将此应用程序放在后台),然后再次回到此应用程序时,viewWillAppear方法不再被调用?
ios ×6
cocoa-touch ×2
iphone ×2
swift ×2
background ×1
events ×1
ios4 ×1
ipad ×1
multitasking ×1
objective-c ×1
xcode ×1