ios - 导航栏的注销按钮 navigationController 问题

标签 ios uinavigationcontroller uinavigationbar logout

我的应用程序中有一个登录 View ,它会在用户输入正确的用户名和密码后加载主菜单 View 。我正在使用它进入主菜单 View :

MenuViewController *menuViewController=[[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil];
        menuViewController.title=@"Felton";
        UINavigationController *tnavController=[[UINavigationController alloc] initWithRootViewController:menuViewController];
        tnavController.view.frame=CGRectMake(0, 0, 1024, 748);
        [menuViewController release];
        self.navController=tnavController;
        [navController release];
        for(UIView *subview in self.view.subviews)
        {
            [subview removeFromSuperview];
        }
        [self.view addSubview:self.navController.view];

所以我的问题是,当按下注销按钮时,我究竟该如何返回登录页面。我已经尝试过与上面相同的方法,但我遇到的问题是每次用户按下注销按钮时,登录页面都会获得 1 个导航栏,并且它们每次都相互堆积。有什么办法可以阻止这种情况发生吗?因为,我的登录页面不应该有导航栏。

提前致谢

最佳答案

虽然从您的问题中不清楚通过您的应用程序的确切流程是什么,但您当然不应该将 navController View 添加为 subview 。

最好将主菜单作为主窗口的 rootViewController,然后在其上显示登录 View Controller (使用 presentModalViewController:)。

在您的登录 View Controller 中创建一个委托(delegate)协议(protocol),并使主菜单成为委托(delegate)。当他们登录时,委托(delegate)方法会触发,主菜单会关闭登录 View 。当他们注销时,主菜单可以再次呈现登录 View 。

关于ios - 导航栏的注销按钮 navigationController 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8602435/

相关文章:

ios - 处理先前 UIViewController 的方向

iphone - 有没有办法找到 UINavigationBar 标题的字体和框架大小?

ios - 导航 Controller 中的静态 barButtonItems?

ios - 动态更改导航栏项目 - Swift

iOS 圆形渐变

ios - UNNotificationAttachment 无法附加图像

ios 从代码中将 uiview 的约束添加到 uiscrollview

ios - 通过 NavigationController 传递数据

ios - 我的导航栏、警报标题和底部警报标题在整个项目中变成白色

swift - 不使用 .barTintColor 设置导航栏的颜色?