首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MMDrawerController实例化

MMDrawerController实例化
EN

Stack Overflow用户
提问于 2014-02-24 19:21:28
回答 3查看 1.7K关注 0票数 1

我正在尝试在我的应用程序中使用MMDrawerController。我已经下载了源代码和依赖项。这是我添加到AppDelegate中的代码。

代码语言:javascript
复制
- (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;
}

然而,应用程序运行到一个空白的screen.What是我错过了吗?

EN

回答 3

Stack Overflow用户

发布于 2014-05-07 21:10:39

代码语言:javascript
复制
UINavigationController * navigationController = 
 [[UINavigationController alloc] initWithRootViewController:drawerController];   

[self.window setRootViewController:navigationController];

并且不需要写在下面的行:

代码语言:javascript
复制
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

希望这能完美地工作。

票数 4
EN

Stack Overflow用户

发布于 2014-02-24 19:25:10

将返回前的代码行替换为以下内容

代码语言:javascript
复制
[self.window setRootViewController:navigationController];
票数 0
EN

Stack Overflow用户

发布于 2014-04-14 21:38:57

您的问题是,您正在使用UIViewController设置中心、右侧和左侧的views,并且这些UIViewControllers设置也没有定义,以便集成右侧的MMDrawerController,请执行以下操作。

  1. 为了保证视图已初始化,您可以使用以下代码来获取在情节提要中创建的UIViewControllers

UIStoryboard *故事板;storyboard = UIStoryboard storyboardWithName:“故事板名称”捆绑包:nil;UIViewController * leftSideNavController =故事板instantiateViewControllerWithIdentifier:“左侧视图标识符”;UIViewController * centerSideNavController = storyboard instantiateViewControllerWithIdentifier:“中心视图标识符”;UIViewController * rightSideNavController = storyboard instantiateViewControllerWithIdentifier:“右侧视图identifier";

  • then使用从上一点获得的UIViewControllers初始化MMDrawerController

initWithCenterViewController:centerSideNavController leftDrawerViewController:leftSideNavController rightDrawerViewController:rightSideNavController];的self.drawerController = [MMDrawerController alloc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21986287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档