【问题标题】:iOS unwind to view not loadediOS 展开以查看未加载
【发布时间】:2014-04-30 08:20:59
【问题描述】:

我遇到了一个小问题:

我在启动应用程序时遇到了类似的情况:

(1) 初始视图 --> 我已登录? --> (3) 主页视图 | else (2) 登录视图

所以当我登录时,我会转到主页视图。当我注销时,我可以放松到登录视图,因为我来自它。

但是如果我没有从登录视图传递并直接重定向到主视图,我无法在注销时展开到登录视图。

有人知道这方面的解决方案吗?

【问题讨论】:

    标签: ios objective-c cocoa-touch segue stack-unwinding


    【解决方案1】:

    我只是把我的逻辑放在这里:
    获取/添加一个 viewController,例如 DummyViewController 作为您应用的 rootViewController。 在DummyViewController'sviewWillAppear 方法中把逻辑像一个

    - (void)viewWillAppear:(BOOL)animated 
    {
        [super viewWillAppear:animated];
    
        if(login == YES)
        {
           //go to home screen
        }
        else
        {
          // go to login screen
        }
    }
    

    DummyViewController 中你只需要在viewWillAppear 中编写代码,不再需要了。 如果您想注销,只需调用

    [self.navigationController popToRootViewControllerAnimated:YES]; 
    

    DummyViewControllerviewWillAppear 方法将根据登录 状态管理您的屏幕。

    【讨论】:

    • 我试过了,但我要去rootviewcontroller,之后,它在LoginView中重定向得很好。很好。但是没有办法直接重定向到 LoginView ?
    • 有很多方法,但我正在考虑上面的技巧,很容易在登录和注销之间进行管理:)
    • 还可以在显示登录屏幕或注销屏幕时通过漂亮的动画进行管理。
    【解决方案2】:

    您可以在注销完成时使用NSNotificationCenter 通知您的根类。然后弹出你的rootViewController

    如果您使用的是 UINavigationController,只需在 NavigationController's RootViewController 上显示您的登录控制器,如下所示

    -(void)logoutNotification
    {
    logout = YES;
    }
    
    -(void)viewDidAppear:(BOOL)animated
    {
        if (logout)
        {        
            AuthController * auth = [[AuthController alloc] init];
    
            [self presentViewController:auth animated:NO completion:^{
    
            }];
    
            logout = NO;
    
            auth = nil;
        }
    }
    

    【讨论】:

      【解决方案3】:

      也许这样做有点笨拙,但您可以简单地始终加载登录视图并将“我已登录?”委托给它。查看。您可以隐藏或使用等待标志或其他方式加载它...这样您在注销时就已经加载了它。

      没有看到您的代码,我无法向您展示如何操作,但我想逻辑就足够了。

      【讨论】:

        猜你喜欢
        • 2013-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-03
        • 2019-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多