2

我正在开发一个MFsidemenu用于 swipeBar 的应用程序。我的应用程序包含一个loginControllerwhich 是 anuiViewController并在将其登录后更改为uiNavigationController.

MFsidemenu需要在 AppDelegate 上运行此代码:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;

UIViewController *leftSideMenuViewController = [storyboard instantiateViewControllerWithIdentifier:@"leftSideMenuViewController"];
[MFSideMenu menuWithNavigationController:navigationController
                  leftSideMenuController:leftSideMenuViewController
                 rightSideMenuController:nil];

问题是如果 initialView 是uiViewController(Login) 如何更改代码的第二行,然后如何将其传递给secondViewController(MainMenu) 这是一个uiNavigationController

简而言之,我希望MFSidemenu它只在第二个控制器上工作,它是主控制器。谢谢!

更新:已解决,由下面的 SpaceDust 解决方案 :)

问题更新:因此,使用示例MFSidemenu仅限于在控制器上显示侧面菜单。该示例sideMenuController从故事板上的任何其他 segue 中流放。在我实现uiTableViewController导航到另一个控制器的侧面菜单上。那么如何更改 MainMenuViewsideMenuController didSelectRowAtIndexPath呢?我希望我的英语足够好来代表我的情况。再次感谢!

4

1 回答 1

3

uiViewController(Login)如果您不想在登录期间出现侧边菜单,则需要将您的显示为模态视图控制器。

在情节提要中创建一个登录视图控制器,给它一个情节提要 ID,比如说 LoginViewController 。不要将该视图控制器连接到情节提要上的任何东西,让它自己坐在一个角落里。

首先创建一个全局单例变量,您可以在其中检查用户是否已登录

然后在你的navigationcontroller's rootviewcontroller

-(void)viewWillAppear:(BOOL)animated
{
     //this will present the login view if user is not logged in
    if (isLoggedIn==NO) {

        UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard"
                                                     bundle:nil];
        LoginViewController *loginVC = [sb instantiateViewControllerWithIdentifier:@"LoginViewController"];
        [self presentModalViewController:loginVC  animated:YES];

    }
}

登录过程完成后,在您的登录视图控制器中更改全局单例布尔值,isLoggedIn=YES 然后关闭您的登录视图控制器。

[self dismissViewControllerAnimated:NO];

于 2013-04-04T12:56:53.743 回答