Ios 带splitview的MMDrawerController
我有一个适用于iphone和ipad的应用程序 适用于iphone和ipad的经典主/细节应用程序splitview 我想使用MMDrawerController添加一个滑出菜单 我设法为iphone添加了它,但我不知道如何为ipad添加它,以及如何保持splitview/NavigationController的行为 原始代码:Ios 带splitview的MMDrawerController,ios,Ios,我有一个适用于iphone和ipad的应用程序 适用于iphone和ipad的经典主/细节应用程序splitview 我想使用MMDrawerController添加一个滑出菜单 我设法为iphone添加了它,但我不知道如何为ipad添加它,以及如何保持splitview/NavigationController的行为 原始代码: self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
MyMasterViewController *masterViewController = [[MyMasterViewController alloc] initWithNibName:@"MyMasterViewController_iPhone" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
self.window.rootViewController = self.navigationController;
} else {
MyMasterViewController *masterViewController = [[MyMasterViewController alloc] initWithNibName:@"MyMasterViewController_iPad" bundle:nil];
UINavigationController *masterNavigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
MyDetailViewController *detailViewController = [[MyDetailViewController alloc] initWithNibName:@"MyDetailViewController_iPad" bundle:nil];
UINavigationController *detailNavigationController = [[UINavigationController alloc] initWithRootViewController:detailViewController];
masterViewController.detailViewController = detailViewController;
self.splitViewController = [[UISplitViewController alloc] init];
self.splitViewController.delegate = detailViewController;
self.splitViewController.viewControllers = [NSArray arrayWithObjects:masterNavigationController, detailNavigationController, nil];
self.window.rootViewController = self.splitViewController;
}
[self.window makeKeyAndVisible];
正在尝试使用MMDrawerController:
UIViewController * leftSideDrawerViewController = [[MMExampleLeftSideDrawerViewController alloc] init];
NSString *strViewMaster = @"MyMasterViewController_iPhone";
UIViewController * centerViewController = [[MyMasterViewController alloc] initWithNibName:strViewMaster bundle:nil];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] != UIUserInterfaceIdiomPhone) {
strViewMaster = @"MyDetailViewController_iPad";
centerViewController = [[MyDetailViewController alloc] initWithNibName:strViewMaster bundle:nil];
}
// unused
//UIViewController * rightSideDrawerViewController = [[MMExampleRightSideDrawerViewController alloc] init];
UINavigationController * navigationController = [[UINavigationController alloc] initWithRootViewController:centerViewController];
MMDrawerController * drawerController = [[MMDrawerController alloc]
initWithCenterViewController:navigationController
leftDrawerViewController:leftSideDrawerViewController];
[drawerController setMaximumRightDrawerWidth:200.0];
[drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModePanningNavigationBar];
[drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];
[drawerController
setDrawerVisualStateBlock:^(MMDrawerController *drawerController, MMDrawerSide drawerSide, CGFloat percentVisible) {
MMDrawerControllerDrawerVisualStateBlock block;
block = [[MMExampleDrawerVisualStateManager sharedManager]
drawerVisualStateBlockForDrawerSide:drawerSide];
if(block){
block(drawerController, drawerSide, percentVisible);
}
}];
//centerViewController.mm_drawerController = drawerController;
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:drawerController];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
因此,在ipad上,滑出菜单工作,加载了detailview,但我不知道如何定义masterViewcontroller/navigationcontroller,使其无法工作
(对不起,我是一个真正的nood,有着你可以看到的objective c和ios概念)
谢谢MMDrawerController不能与SplitViewController一起使用。(如github项目描述中所述)。@picolo 不幸的是,苹果强制将UISplitViewController作为窗口的rootViewController,这意味着您不能将其放置在容器视图控制器中。您必须编写自己的类似拆分视图控制器实现,以便将其放入另一个容器视图控制器中
干杯mm Drawer不适用于SplitViewController。尝试使用MFSlideMenu。它适用于几乎所有类型的控制器
这是链接。--> 您对仅用于主视图的MMDrawerController或MMDrawer有何想法?他们的示例附带SplitViewController