0

我正在使用MMDrawerController库。我的应用程序在 Objective C 中。它有一个登录屏幕作为它的第一个屏幕。 AppDelegate.m 的代码

LoginViewController* loginView= [[LoginViewController alloc]initWithNibName:@"LoginViewController"] bundle:nil];
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:loginView];
    self.loginViewController = navigationController;
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    [self.window setRootViewController:navigationController];
    [window makeKeyAndVisible];

现在当登录成功时,我转到 HomeViewController。在这里,我必须将 rootViewController 更改为 MMDrawerController 才能使库正常工作。为此,我在 HomeViewController.m 的 ViewDidLoad() 中编写以下代码

-(Void)methodCalledInViewDidLoad
{
  UIViewController * leftSideDrawerViewController = [[MMExampleLeftSideDrawerViewController alloc] init];  
    UIViewController * centerViewController = [[HomeViewController alloc] init];
    UIViewController * rightSideDrawerViewController = [[RightViewController alloc] init];
    UINavigationController * navigationController = [[UINavigationController alloc] initWithRootViewController:centerViewController];
    [navigationController setRestorationIdentifier:@"HomeViewController"];
    self.drawerController = [[MMDrawerController alloc]                         initWithCenterViewController:navigationController                        leftDrawerViewController:leftSideDrawerViewController
                             rightDrawerViewController:nil];
    [self.drawerController setRestorationIdentifier:@"HomeViewController"];
    [self.drawerController setMaximumLeftDrawerWidth:200.0];
    [self.drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll];
    [self.drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll];
    [self.drawerController
     setDrawerVisualStateBlock:^(MMDrawerController *drawerController, MMDrawerSide drawerSide, CGFloat percentVisible) {
         MMDrawerControllerDrawerVisualStateBlock block;
         block = [[MMExampleDrawerVisualStateManager sharedManager]
                  drawerVisualStateBlockForDrawerSide:drawerSide];
         if(block){
             block(drawerController, drawerSide, percentVisible);
         }
     }];
appDelegate.self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
  [appDelegate.self.window setRootViewController:self.drawerController];

}

这不起作用并显示错误。我已遵循所有可用的教程。rootViewController 没有更改为HomeViewController中的drawerController

4

1 回答 1

0
AppDelegate *appDel=(AppDelegate)[[UIApplication sharedApplication]delegate];
  [appDel.window setRootViewController:self.drawerController];

仍然无法使用 MFSlidebar。https://github.com/mikefrederick/MFSideMenu

于 2016-03-28T12:23:39.910 回答