use*_*618 13 uinavigationbar uibutton uibarbuttonitem ios swrevealviewcontroller
注意:问题解决了.
这是故事.我在我的项目中使用RevealViewController.我也隐藏了navigationBars:
[self.navigationController setNavigationBarHidden];
Run Code Online (Sandbox Code Playgroud)
我的项目可以在下面的图片中看到," menuButton "在tabBarViewController中实现.
由于我的界面外观导致navigationBar被隐藏,所有tabViews(HomeViewController)都不会显示menuButton和navigationBar.我没有使用panGestureRecognizer来触发菜单.
这意味着我有问题通过HomeViewController中的普通按钮触发菜单.menuButton事件放在tabBarViewController.m中:
_menuButton.target = self.revealViewController;
_menuButton.action = @selector(revealToggle:);
Run Code Online (Sandbox Code Playgroud)
所以我试着从HomeViewController调用一个方法来激活tabBarViewController中的按钮,如下所示:
HomeViewController.m
- (IBAction) onMenuClicked: (id)sender{
tabBar = [[tabBarViewController alloc] init];
[tabBar setupMenu]:
}
Run Code Online (Sandbox Code Playgroud)
tabBarViewController.m
-(void) setupMenu{
[_realMenuButton sendActionForControlEvents:UIControlEventTouchUpInside];
[_realMenuButton addTarget:self.revealViewController action:@selector(revealToggle:) UIControlEventTouchUpInside];
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我尝试制作realMenuButton和普通的UIButton.香港专业教育学院还试图为刚的UIBarButtonItem触发@selector(revealToggle :)但是什么也没有发生在应用程序中,当我尝试触发来自HomeViewController按钮.
不知道我将如何使这项工作.还有其他想法或伎俩吗?如果有,请具体说明!问候
是的,它仍然有效.SWRevealViewController只是UIViewController的子类,因此您可以在应用程序的任何位置使用它:
presentViewController:animated在某个时候打电话.请注意,您可以将手势添加SWRevealViewController到其内容视图控制器,这将改变导航视图控制器中使用的行为,但这是预期的,并且您仍然可以完全控制其行为.
编辑
您的应用程序的UI结构对我来说仍然不明确 - 看起来您正试图调用revealToggle一个实例,SWRevealViewController当时视图中的VC实际上是HomeViewController?当SWVC甚至不在视野中时,它会如何工作?
我最好的猜测是你的UI结构应该如下:
TabBarController --->(root)UINavigationController --->(root)SWRevealViewController.
然后,在SWRevealViewController上,将HomeViewController设置为前视图控制器,将TableViewController设置为右视图控制器或左视图控制器.
你的意思是这样的吗?
有可能的.你可以在tabBarController.m中设置菜单按钮,如下所示:
UIBarButtonItem *menu = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"menu.png"] style:UIBarButtonItemStylePlain target:revealController action:@selector(revealToggle:)];
self.navigationItem.leftBarButtonItem = menu;
self.delegate = self;
Run Code Online (Sandbox Code Playgroud)
对我来说,我的初始视图控制器是登录屏幕(显然我不需要在这里透露任何VC ......).然后当用户点击登录按钮时,
UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:yourRootVC];
LeftMenuViewController *leftMenuVC = [[LeftMenuViewController alloc]init];
SWRevealViewController *revealController = [[SWRevealViewController alloc]initWithRearViewController:leftMenuVC frontViewController:nav];
revealController.delegate = self;
[self presentViewController:revealController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |