当应用程序进入后台时,我想转换回第一个视图

时间:2014-01-02 16:34:28

标签: ios objective-c appdelegate

当应用程序进入后台时,它会将人员从应用程序中记录出来(根据规范)。

我想转换回第一个视图控制器。这不是导航或标签栏控制器(虽然它确实转换为第一个场景之后的那些)。

我在AppDelegate中试过这个

- (void)applicationDidEnterBackground:(UIApplication *)application
{
        LoginRegisterViewController *controller = [[LoginRegisterViewController alloc] init];
        [self.window setRootViewController:controller];
}

但它只是将我转换为黑屏。

有什么建议吗?

4 个答案:

答案 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];
前景方法中的