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 に答える