【问题标题】:Sidebar Navigation Menu on Storyboard故事板上的侧边栏导航菜单
【发布时间】:2014-03-26 15:58:38
【问题描述】:

我遵循了 TreeHouse 教程,了解如何创建登录/注册屏幕以及添加侧边栏导航菜单的 AppCoda 教程:http://www.appcoda.com/ios-programming-sidebar-navigation-menu/

我的主视图控制器连接了登录/注册栏,该主视图控制器连接到侧边栏视图控制器。这导致了一个有趣的错误,我可以在不登录的情况下进入主屏幕。

谁能建议一个故事板布局,我可以在我登录时使侧边栏滑动?

【问题讨论】:

  • 我理解正确,你的RootViewController是MasterViewController,当用户打开你的应用时,如果他没有登录,他会重定向到登录页面(通过push(?)导航)?
  • 是的,正确!我确实使它成为根

标签: ios storyboard sidebar


【解决方案1】:

在你的 LoginController(或什么名字)中添加这一行 viewDidLoad:

self.navigationController.interactivePopGestureRecognizer.enabled = NO;

它将停止弹出的默认平移手势。试试看。

【讨论】:

    【解决方案2】:

    我通常处理此问题的方式是使用另一个 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];
    
    }
    

    在应用代理的应用程序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 个视图控制器

    【讨论】:

    • 很抱歉 - 不太确定如何实施您的建议。我刚开始并开始学习故事板,那么您是否可以展示一个图像示例来说明您的故事板将如何布局?我使用 Parse 作为登录验证器,当我第一次启动 MasterViewController 时,它会在那里检查登录验证。如果未登录,则推送到登录屏幕。
    • 我添加了一个屏幕截图 - 所以基本上我的“MasterViewController”会做应用程序应该做的事情。登录视图控制器将负责登录。然后,您只需根据需要更改 2 件事。
    • 或者我想另一种方法是让您的 MasterViewController 以模态方式显示登录屏幕,前提是用户未登录。然后必须在用户看到下面的视图之前将其关闭。可能会更容易。
    猜你喜欢
    • 2014-07-03
    • 2015-09-29
    • 2021-06-17
    • 2017-08-29
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多