在Objective C中使用Tabbar和导航栏显示视图

时间:2014-11-04 05:50:08

标签: ios objective-c uiview uinavigationcontroller uitabbarcontroller

我开发的应用程序要求用户登录以获取完整功能,但允许用户跳过登录进行浏览。

在我的故事板中,我有一个UIViewController作为登录屏幕。当我单击“跳过”按钮时,它会进入下一个屏幕。

这是我遇到问题的时候...我希望当用户按下跳过时弹出的屏幕有一个导航栏和一个标签栏。我将这两件事添加进去并且有效。

在我的app委托文件中,我检查用户是否已跳过应用程序直接进入菜单屏幕。问题是,它只是一个没有导航栏和标签栏的空白屏幕。当我按下跳过时,它工作正常,但在关闭它后重新启动应用程序时却没有。

以下是检查用户是否已跳过登录的代码:

//Check NSUserDefaults to get the value for skipLogin
     BOOL skipLogin = [[NSUserDefaults standardUserDefaults] objectForKey:kACUserDefaultsSkippedLoginKey];

//Check to see if the user has logged in or has already pressed the skip button.
//If not, show the LoginViewController
     if(skipLogin || [PFUser currentUser]) {
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
     MenuViewController *menuView = [storyboard instantiateViewControllerWithIdentifier:@"MenuView"];
     self.window.rootViewController = menuView;
     }else{
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
     LoginViewController *loginView = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"];
     self.window.rootViewController = loginView;
     }

我做错了什么?

2 个答案:

答案 0 :(得分:0)

为什么不使用performSegueWithIdentifier推送新的视图控制器? 也许问题是你正在加载故事板,你也在设置窗口的rootViewController。

答案 1 :(得分:0)

我继续将初始视图控制器切换到菜单视图,如果用户没有登录或跳过登录,我只需弹出登录视图。它的工作方式要好得多。

谢谢你们的帮助!