当应用程序进入后台时,它会将人员从应用程序中记录出来(根据规范)。
我想转换回第一个视图控制器。这不是导航或标签栏控制器(虽然它确实转换为第一个场景之后的那些)。
我在AppDelegate中试过这个
- (void)applicationDidEnterBackground:(UIApplication *)application
{
LoginRegisterViewController *controller = [[LoginRegisterViewController alloc] init];
[self.window setRootViewController:controller];
}
但它只是将我转换为黑屏。
有什么建议吗?
答案 0 :(得分:1)
而不是applicationDidEnterBackground:
在applicationWillEnterForeground:
执行转换。
答案 1 :(得分:0)
我认为你想要的东西就像一个锁定的屏幕,当再次进入前景时会显示。添加子UIWindow可能会更好。
答案 2 :(得分:0)
尝试此代码
(BOOL)应用程序:(UIApplication *)应用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//在应用程序启动后覆盖自定义点。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidTimeout :) name:kApplicationDidTimeoutNotification object:nil];
返回YES;
}
(void)applicationDidTimeout:(NSNotification *)notif {
UINavigationController * navigationController =(UINavigationController *)self.window.rootViewController;
[navigationController popToRootViewControllerAnimated:YES];
}
(void)applicationWillResignActive:(UIApplication *)应用程序 {
//当应用程序即将从活动状态转为非活动状态时发送。对于某些类型的临时中断(例如来电或SMS消息),或者当用户退出应用程序并开始转换到后台状态时,可能会发生这种情况。
//使用此方法暂停正在进行的任务,禁用计时器,并降低OpenGL ES帧速率。游戏应使用此方法暂停游戏。
[[NSNotificationCenter defaultCenter] postNotificationName:kApplicationDidTimeoutNotification object:nil];
}
Sweet&简单的编码......
答案 3 :(得分:0)
这是唯一一个适合我的人,
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
LoginRegisterViewController *myVC = (LoginRegisterViewController *)[storyboard instantiateInitialViewController];
[self.window setRootViewController:myVC];
前景方法中的。