如何在退出时返回iPhone App的第一个屏幕?

时间:2015-02-18 09:07:42

标签: swift ios8 heap-memory xcode6.1 pop

我有一个应用程序,其结构在附加图像中定义。 基本上,我有一个登录视图控制器作为根视图控制器。当用户登录时,app会转到TabbarController,从那里他进入Home View Controller。还有三个标签。现在有一个Log Out按钮可以点击哪个用户应该进入Sign In View Controller,但是如果我编写代码以弹出到Root View Controller,他将转到任何选项卡的Root View Controller但不登录登录屏幕。 enter image description here 所以请建议POP如何登录View Controller。 请记住,我不想创建新的SignInViewController对象,因此Push对我来说不起作用,而且会耗费大量内存。 如果您需要更多相关信息,请告诉我,但我认为附件图片会澄清您的一切。 仅供参考:我在XCode 6.1中使用Swift

2 个答案:

答案 0 :(得分:1)

您必须将SignInViewController设为根视图控制器。

  1. 删除登录凭据。
  2. 并将SignInViewController加载为rootviewcontroller。
  3. 注意:在我的场景中,工作流程在ARC模式下效果最佳。因为在ARC模式下,我们不必释放你在内存中加载的所有视图控制器。

答案 1 :(得分:1)

这是我使用动画更改rootviewcontroller的实现。此方法在AppDelegate类中定义。不要忘记将storyboardid分配给您想要的ViewController。

 - (void)changeRootViewControllerWithID:(NSString *)storyboardId
    {
        UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];

        UINavigationController * newRootViewController = (UINavigationController *)[storyboard instantiateViewControllerWithIdentifier:storyboardId];

        [newRootViewController view];

        [UIView transitionFromView:self.window.rootViewController.view
                                                toView:newRootViewController.view
                                            duration:0.65f
                                             options:UIViewAnimationOptionTransitionFlipFromRight
                                        completion:^(BOOL finished){
                        self.window.rootViewController = newRootViewController;
                                        }];

    }