Ios MFSideMenu如何在另一个ViewController中加载
我的应用程序基于Ios MFSideMenu如何在另一个ViewController中加载,ios,objective-c,mfslidemenu,Ios,Objective C,Mfslidemenu,我的应用程序基于登录视图和第二视图。登录后我将显示SecondView 我不想在LoginView上设置MFSideMenu。我想在第二视图中使用MFSideMenu。我正在尝试在我的AppDelegate.m中执行此操作: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIStoryboard *storyb
登录视图
和第二视图
。登录后我将显示SecondView
我不想在LoginView
上设置MFSideMenu
。我想在第二视图中使用MFSideMenu
。我正在尝试在我的AppDelegate.m
中执行此操作:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
UIViewController *baseViewApp = [storyboard instantiateViewControllerWithIdentifier:@"MFSideMenuContainerViewController"];
MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)baseViewApp.view.window.rootViewController;
//MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)self.window.rootViewController;
UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"navigationController"];
UIViewController *leftSideMenuViewController = [storyboard instantiateViewControllerWithIdentifier:@"leftSideMenuViewController"];
UIViewController *rightSideMenuViewController = [storyboard instantiateViewControllerWithIdentifier:@"rightSideMenuViewController"];
[container setLeftMenuViewController:leftSideMenuViewController];
[container setRightMenuViewController:rightSideMenuViewController];
[container setCenterViewController:navigationController];
return YES;
}
在上图中,我从我的SideMenuContainerView
中显示了我的故事板属性(我想在这里加载MFSideMenu
):
当我开始使用初始的ViewController
构建我的应用程序时,MFSideMenu
正在工作
MySecondView
并使用此行:
MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)self.window.rootViewController;
但当我尝试这个:
UIViewController *baseViewApp = [storyboard instantiateViewControllerWithIdentifier:@"MFSideMenuContainerViewController"];
MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)baseViewApp.view.window.rootViewController;
MFSideMenu
不起作用。将新的UIViewController作为登录视图控制器拉到主板上。在属性检查器中,将标识符更改为LoginViewController(或其他适当的名称)
成功登录后,只需关闭LoginViewController即可。我将Lib更改为。如果您试图从应用程序代理访问它,您将在此处找到代码。诀窍是尝试获取UINavigationController。你可以在这里看到,我是通过窗户找到的
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)self.window.rootViewController;
HomeViewController * homeVC = [storyboard
instantiateViewControllerWithIdentifier:@"HomeViewController"];
NSArray *controllers = [NSArray arrayWithObject:homeVC];
UINavigationController * navigationController = (UINavigationController* )container.centerViewController;
navigationController.viewControllers = controllers;
主视图和侧视图控制器之间不应有任何链接(分段)或连接(可以设置主视图和侧视图控制器),设置其他脚本ID(
MainMenuViewController
-->mainVC
,SideMenuViewController
-->sideVC
),import MainMenuViewController,SideMenuViewController,MFSideMenu
在loginview
上,现在调用下面的将移动视图:
MainMenuViewController *mainMenuVC = [self.storyBoard instantiateViewControllerWithIdentifier:
@"mainVC"];
SideMenuViewController *sideVC = [self.storyBoard instantiateViewControllerWithIdentifier:
@"sideVC"];
MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
containerWithCenterViewController:mainMenuVC
leftMenuViewController:sideVC
rightMenuViewController:nil];
[self.navigationController pushViewController:container animated:YES];
- (作废)createLoginPage李>
- (void)createSidemenuPage李>
在appDelegate中编写的代码,您必须在登录按钮的单击事件中编写该代码。我可以这样做吗代码>UIViewController*baseViewApp=[storyboard InstanceDeviceController的标识符:@“MFSideMenuContainerViewController”];MFSideMenuContainerViewController*容器=(MFSideMenuContainerViewController*)baseViewApp.view.window.rootViewController``说真的。。。天气好多了!!!我应该在哪里写上面的代码?因为我想实现同样的功能。
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)self.window.rootViewController;
HomeViewController * homeVC = [storyboard
instantiateViewControllerWithIdentifier:@"HomeViewController"];
NSArray *controllers = [NSArray arrayWithObject:homeVC];
UINavigationController * navigationController = (UINavigationController* )container.centerViewController;
navigationController.viewControllers = controllers;
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:YourViewController];
MFSideMenuContainerViewController *container = (MFSideMenuContainerViewController *)self.view.window.rootViewController;
[container setCenterViewController:nav];
MainMenuViewController *mainMenuVC = [self.storyBoard instantiateViewControllerWithIdentifier:
@"mainVC"];
SideMenuViewController *sideVC = [self.storyBoard instantiateViewControllerWithIdentifier:
@"sideVC"];
MFSideMenuContainerViewController *container = [MFSideMenuContainerViewController
containerWithCenterViewController:mainMenuVC
leftMenuViewController:sideVC
rightMenuViewController:nil];
[self.navigationController pushViewController:container animated:YES];
(void)createLoginPage
{
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
UIStoryboard *loginStoryBoard = [UIStoryboard storyboardWithName:LoginStoryBoardName bundle:nil];
SigninViewController *signVC = [loginStoryBoard instantiateViewControllerWithIdentifier:SigninViewControllerIdentifier];
UINavigationController* nav = [[UINavigationController alloc]initWithRootViewController:signVC];
nav.navigationBar.hidden = YES;
self.window.rootViewController = nav;
[self.window makeKeyAndVisible];
}
(void)createSidemenuPage
{
//-- Left ViewController
UIStoryboard *sideMenuSB = [UIStoryboard storyboardWithName:SideMenuStoryBoardName bundle:[NSBundle mainBundle]];
SideMenu *sideMenuVC = [sideMenuSB instantiateViewControllerWithIdentifier:SideMenuIdentifier];
//-- Center ViewController
UIStoryboard *centerVC = [UIStoryboard storyboardWithName:CenterStoryboardName bundle:[NSBundle mainBundle]];
UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:centerVC];
MFSideMenuContainerViewController *container =[MFSideMenuContainerViewController containerWithCenterViewController:navigationController leftMenuViewController:sideMenuVC rightMenuViewController:nil];
self.window.rootViewController = container;
[self.window makeKeyAndVisible];
}