我在Objective C中有一个使用this的幻灯片的项目。菜单上的每个页面底部都有3个按钮
在didSelectRowAtIndexPath
的左侧菜单表中,我可以使用
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;
每个视图控制器都有自定义UIView,由3个按钮组成。它就像Spotify for iOS上的底部标签栏。它将导航到具有slidemenu按钮的A,B和C视图控制器。
现在,我可以通过在自定义视图上创建委托来导航到A,B和C. 需要目标UIViewController的实例作为参数,所以我可以使用
呈现该视图控制器[self presentViewController:vc animated:YES completion:nil];
但结果是,A,B和C视图控制器无法使用1,2和3视图控制器等代码初始化其幻灯片。它创建了汉堡菜单,但它不能显示幻灯片菜单。
所以我在这里做错了?我认为我的错是如何呈现使用presentViewController
的A,B和C视图控制器。还是另一个?任何消化都将不胜感激。非常感谢你!
答案 0 :(得分:0)
<强>解决强>
而不是:
[self presentViewController:vc animated:YES completion:nil];
使用:
[self.revealViewController setMainViewController:vc animated:YES];
在这种情况下,所提供的vc控制器将保留一个revealViewController属性,因为它随之显示。
正如其开发人员所说here
非常感谢你!