2014-12-30 4 views
1

Я использую MMDrawerController в своем проекте, и я не хочу, чтобы это был rootViewController. Также я использую раскадровку для установки пользовательского интерфейса. В большинстве примеров кода это не так. Поэтому я немного запутался, как это сделать.MMDrawerController не rootViewController

Я установил встраивание FirstViewController с navigationController и на нем есть Button. ButtonClick нажимает контроллер на CenterViewController.

Вот мой код ...

FirstViewController.m

UIViewController * centerViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"CenterViewController"]; 
UIViewController * rightSideDrawerViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"RightViewController"]; 

self.drawerController = [[MMDrawerController alloc] initWithCenterViewController:centerViewController rightDrawerViewController:rightSideDrawerViewController]; 

[self.drawerController setShowsShadow:NO]; 
[self.drawerController setMaximumRightDrawerWidth:150.0]; 
[self.drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll]; 
[self.drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll]; 

CenterViewController.m

- (void)viewDidLoad { 
[super viewDidLoad]; 
self.view.backgroundColor = [UIColor lightGrayColor]; 
MMDrawerBarButtonItem * rightDrawerButton = [[MMDrawerBarButtonItem alloc] initWithTarget:self action:@selector(rightDrawerButtonPress:)]; 
[self.navigationItem setRightBarButtonItem:rightDrawerButton animated:YES]; 
} 

-(void)rightDrawerButtonPress:(id)sender{ 
[self.mm_drawerController toggleDrawerSide:MMDrawerSideRight animated:YES completion:nil]; 
} 

RightViewController.m

- (void)viewDidLoad { 
[super viewDidLoad]; 
self.view.backgroundColor = [UIColor yellowColor]; 
} 

Это не может работать. Я смущаюсь, должен ли я помещать MMDrawerController в раскадровку?

+0

Не кладите его в раскадровку. Я столкнулся с трудностями при попытке использовать с раскадрой. Так что, наконец, я переключился на подход. – NightFury

ответ

0

вы можете использовать следующий код в приложении: didFinishLaunchingWithOptions:

application:didFinishLaunchingWithOptions, но до сих пор MMDrawerController будет вашим корнем.

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Home" bundle:nil]; 

UIViewController * leftSideNavController = 
[storyboard instantiateViewControllerWithIdentifier: 
@"LeftMenu"]; 

UIViewController * centerSideNavController = [storyboard instantiateViewControllerWithIdentifier : @"Home"]; 

UIViewController * rightSideNavController = [storyboard instantiateViewControllerWithIdentifier : 
@"RightMenu"]; 


UINavigationController * navigationController = [[UINavigationController alloc] initWithRootViewController:centerSideNavController]; 
self.drawerController = [[MMDrawerController alloc] initWithCenterViewController:navigationController leftDrawerViewController:leftSideNavController rightDrawerViewController:rightSideNavController]; 



[self.drawerController setOpenDrawerGestureModeMask:MMOpenDrawerGestureModeAll]; 
[self.drawerController setCloseDrawerGestureModeMask:MMCloseDrawerGestureModeAll]; 


[self.window setRootViewController:self.drawerController]; 
/* Optional - To define Drawer width */ 
[self.drawerController setMaximumRightDrawerWidth:280.0]; 

[self.drawerController setMaximumLeftDrawerWidth:280.0]; 

[self.window makeKeyAndVisible]; 

Надеюсь, это поможет.

Смежные вопросы