移动到另一个视图控制器的正确方法

问题描述:

我在Objective C中有一个项目,它使用从this的幻灯片菜单。从菜单上的每一页,它具有在底 Slidemenu移动到另一个视图控制器的正确方法

3按钮开didSelectRowAtIndexPath的左边的菜单表,我可以‘移动’到1,2和3的视图控制器通过使用

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MyStoryboard" bundle:nil]; 
UIViewController *controller = [[UINavigationController alloc] initWithRootViewController:[storyboard instantiateViewControllerWithIdentifier:@"MyStoryboardViewController"]]; 
[self.revealViewController pushMainViewController:controller animated:YES]; 

在第1,2,和3 - 视图 - 控制器,我初始化汉堡包菜单上的导航项目与此

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] init]; 
UIImage *imgBtn = [UIImage imageNamed:@"menu"]; 
[barButton setImage:imgBtn]; 

barButton.target = self.revealViewController; 
barButton.action = @selector(revealLeftView); 

self.revealViewController.toggleAnimationType = PBRevealToggleAnimationTypePushSideView; 
self.navigationItem.leftBarButtonItem = barButton; 

而且每个视图控制器具有由3个按钮的自定义的UIView。这就像Spotify for iOS的底部标签栏。它将导航到A,B和C视图控制器,该控制器也具有滑动菜单按钮。 Bottom button

现在,我可以通过在其自定义视图 需要目的地的UIViewController实例作为参数,所以我可以呈现使用

[self presentViewController:vc animated:YES completion:nil]; 

该视图控制器创建委托导航到A,B,和C但是,结果是,A,B和C视图控制器无法使用类似于1,2和3视图控制器的代码来初始化其幻灯片菜单。它创建汉堡菜单,但它不能显示幻灯片菜单,因为它应该是。

那么我在这里做错了吗?我认为我的错在于如何呈现使用presentViewController的A,B和C视图控制器。还是另一个?任何消化,将不胜感激。非常感谢!

解决

相反的:

[self presentViewController:vc animated:YES completion:nil]; 

用途:

[self.revealViewController setMainViewController:vc animated:YES]; 

在这种情况下,VC控制器提出将保持revealViewController属性,因为它呈现它。

作为其开发商表示here

太谢谢你了!