UINavigationController 疑问

iOS 码拜 7年前 (2015-05-02) 516次浏览 0个评论
 

 if( [self goToMainView] )
    {

        MainViewController * vc = [[MainViewController alloc]initWithNibName:@"MainViewController" bundle:nil];

        _navController = [[UINavigationController alloc]initWithRootViewController:vc];

    }
    else
    {
        LoginViewController * vc = [[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil];

        _navController = [[UINavigationController alloc]initWithRootViewController:vc];
    }

    self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];

    self.window.rootViewController = _navController;

    [self.window makeKeyAndVisible];


//
上面的代码是我判断直接进入Main界面,还是先通过Logoin界面,然后再进入Main界面的情况(在Login界面里面如果正常的话会push到Main界面)。

现在的问题是,如果我直接进入了Main界面,在Main界面里面有一个 Logout按钮,登出之后,怎么样才能进入Login界面呢?

UINavigationController 疑问
20分
要我的话,我不会像你这样处理。
我会把MainViewController 作为根控制器,而登录LoginViewController 我更倾向于使用present的方式来弹出。 这样在Main中点logout时只需要再弹出loginViewController即可

MainViewController * vc = [[MainViewController alloc]initWithNibName:@"MainViewController" bundle:nil];
UINavigationController *_navController = [[UINavigationController alloc]initWithRootViewController:vc];
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = _navController;

if (![self goToMainView]) {
     [self showLoginView];
}
[self.window makeKeyAndVisible];

///////show login
-(void)showLoginView {
       UIViewController *rootController= self.window. rootViewController;
       LoginViewController * vc = [[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil];
       UINavigationController  *_navLogin = [[UINavigationController alloc]initWithRootViewController:vc];
       [rootController presentViewController:_navLogin animated:YES completion:nil];
}
UINavigationController 疑问
20分
用模态窗口可解决。
如果你不想改变现在Login界面push到Main界面的结构,就不要在Login界面里调用push方法,而是setViewControllers方法,同样可以进入到Main界面,还会把Login界面释放掉。
Main界面登出后再把Login界面present出来

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明UINavigationController 疑问
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!