我正在开发一个使用MFsidemenu
作为swipeBar的应用。
我的应用由loginController
uiViewController
组成,并在记录后更改为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
(登录),如何更改代码的第二行,之后如何将其传递给secondViewController
(MainMenu),这是{ {1}}?
简而言之,我希望uiNavigationController
仅适用于作为主控制器的secondController。谢谢!
更新: 通过下面的SpaceDust解决方案解决:)
问题更新:
因此,使用MFSidemenu
的示例仅限于在控制器上显示侧面菜单。示例MFSidemenu
从故事板上的任何其他segue中流出。在sidemenu上我实现sideMenuController
导航到另一个控制器。那么如何使用uiTableViewController
sideMenuController
更改MainMenuView?我希望我的英语能够很好地代表我的情况。再次感谢!
答案 0 :(得分:3)
如果您不希望在登录期间出现侧边菜单,则需要将uiViewController(Login)
显示为模态视图控制器。
在storyboard中创建一个登录viewcontroller,给它一个storyboard 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];
}
}
登录过程完成后,在您的登录viewcontroller中
将全局单身布尔值更改为isLoggedIn=YES
然后关闭您的登录视图控制器。
[self dismissViewControllerAnimated:NO];