我已经按照TreeHouse教程了解如何创建登录/注册屏幕以及添加侧边栏导航菜单的AppCoda教程:http://www.appcoda.com/ios-programming-sidebar-navigation-menu/
我的登录/注册栏附加到我的主视图控制器,它连接到侧边栏视图控制器。这是一个有趣的错误,我可以在没有登录的情况下进入主屏幕。
任何人都可以建议一个故事板布局,只有在我登录时才能让侧边栏可以滑动吗?
答案 0 :(得分:3)
在您的LoginController(或名称)中,在viewDidLoad
中添加此行:
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
它将停止弹出窗口的默认平移手势。试试吧。
答案 1 :(得分:0)
我通常使用这个问题的方法是让另一个viewController处理登录,而不是主应用程序导航的一部分。
然后,登录控制器可以执行登录所需的任何操作,并在用户进行身份验证后执行以下操作:
-(void) loginDidComplete {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kLoginKey];
AppDelegate *appDelegateTemp = [[UIApplication sharedApplication]delegate];
appDelegateTemp.window.rootViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard"
bundle:[NSBundle mainBundle]]
instantiateInitialViewController];
[[NSNotificationCenter defaultCenter] postNotificationName:@"UserDidLogin" object:nil userInfo:nil];
}
在app delegate的应用程序didFinishLaunchingWithOptions中,我们可以通过执行以下操作来检查用户是否已登录:
if ([User userAuthenticated] ) //if user is auth correctly, then we go to the main view
{
self.window.rootViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard"
bundle:[NSBundle mainBundle]]
instantiateInitialViewController];
}
else //otherwise we show the login controller
{
self.window.rootViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard"
bundle:[NSBundle mainBundle]]
instantiateViewControllerWithIdentifier:@"LoginViewController"];
}
添加了截图,以演示故事板中的2个viewcontrollers