Ios MM抽屉控制器实例化
我正在尝试在我的应用程序中使用MMDrawerController。我已经下载了源代码和依赖项。这是我添加到AppDelegate的代码Ios MM抽屉控制器实例化,ios,objective-c,Ios,Objective C,我正在尝试在我的应用程序中使用MMDrawerController。我已经下载了源代码和依赖项。这是我添加到AppDelegate的代码 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIViewController * leftDrawer = [[UIViewController alloc] init];
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIViewController * leftDrawer = [[UIViewController alloc] init];
UIViewController * center = [[UIViewController alloc] init];
UIViewController * rightDrawer = [[UIViewController alloc] init];
MMDrawerController * drawerController = [[MMDrawerController alloc]
initWithCenterViewController:center
leftDrawerViewController:leftDrawer
rightDrawerViewController:rightDrawer];
UINavigationController * navigationController = [[UINavigationController alloc] initWithRootViewController:center];
[navigationController setRestorationIdentifier:@"MMExampleCenterNavigationControllerRestorationKey"];
[self.drawerController setRestorationIdentifier:@"MMDrawer"];
[self.drawerController setMaximumRightDrawerWidth:200.0];
[self.drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];
[self.drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];
[self.drawerController
setDrawerVisualStateBlock:^(MMDrawerController *drawerController, MMDrawerSide drawerSide, CGFloat percentVisible) {
UIViewController * sideDrawerViewController;
if(drawerSide == MMDrawerSideLeft){
sideDrawerViewController = drawerController.leftDrawerViewController;
}
else if(drawerSide == MMDrawerSideRight){
sideDrawerViewController = drawerController.rightDrawerViewController;
}
[sideDrawerViewController.view setAlpha:percentVisible];
}];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:self.drawerController];
return YES;
}
但是,应用程序运行到一个空白屏幕。我缺少什么?在返回之前用以下代码替换代码行
[self.window setRootViewController:navigationController];
将返回前的代码行替换为以下内容
[self.window setRootViewController:navigationController];
您的问题是您正在使用UIViewController设置中心视图、右视图和左视图,而且这些UIViewController设置未定义 要正确集成MMDroperController,请执行以下操作 为了保证视图已初始化,您可以使用此代码在脚本中创建UIViewController
UIStoryboard *storyboard;
storyboard = [UIStoryboard storyboardWithName:"Story board name" bundle:nil];
UIViewController * leftSideNavController =
[storyboard instantiateViewControllerWithIdentifier:
"Left side view identifier"];
UIViewController * centerSideNavController =
[storyboard instantiateViewControllerWithIdentifier:
"center view identifier"];
UIViewController * rightSideNavController =
[storyboard instantiateViewControllerWithIdentifier:
"right side view identifier"];
然后使用从上一点获得的UIViewController初始化MMDrawerController
self.drawerController =
[[MMDrawerController alloc]
initWithCenterViewController:centerSideNavController
leftDrawerViewController:leftSideNavController
rightDrawerViewController:rightSideNavController];
您的问题是您正在使用UIViewController设置中心视图、右视图和左视图,而且这些UIViewController设置未定义 要正确集成MMDroperController,请执行以下操作 为了保证视图已初始化,您可以使用此代码在脚本中创建UIViewController
UIStoryboard *storyboard;
storyboard = [UIStoryboard storyboardWithName:"Story board name" bundle:nil];
UIViewController * leftSideNavController =
[storyboard instantiateViewControllerWithIdentifier:
"Left side view identifier"];
UIViewController * centerSideNavController =
[storyboard instantiateViewControllerWithIdentifier:
"center view identifier"];
UIViewController * rightSideNavController =
[storyboard instantiateViewControllerWithIdentifier:
"right side view identifier"];
然后使用从上一点获得的UIViewController初始化MMDrawerController
self.drawerController =
[[MMDrawerController alloc]
initWithCenterViewController:centerSideNavController
leftDrawerViewController:leftSideNavController
rightDrawerViewController:rightSideNavController];
无需在下面一行写下:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
希望这将完美地工作
无需在下面一行写下:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
希望这能很好地工作。您使用CoCoapod吗?不,我正在手动添加依赖项。请参阅编辑。您是否使用cocoapods?不,我正在手动添加依赖项。请参阅编辑。不,不起作用。此外,我没有xib或故事板,假设所有内容都是以编程方式生成的。我需要一个吗?是的,您尝试添加一个具有空白视图的xibor情节提要,否则您无法将控件动态添加到ViewControllerOpe中。该操作不起作用。此外,我没有xib或故事板,假设所有内容都是以编程方式生成的。我需要一个吗?是的,您尝试添加具有空白视图的xibor情节提要,否则无法将控件动态添加到viewcontroller