注意:问题已解决。
故事来了。我在我的项目中使用RevealViewController。我还隐藏了navigationBars:
[self.navigationController setNavigationBarHidden];
在下面的图片中可以看到我的项目,并且在 tabBarViewController 中实现了“ menuButton ”。
由于我的界面外观使NavigationBar被隐藏,因此所有tabViews(HomeViewController)均不会按预期显示menuButton和navigationBar。我没有使用panGestureRecognizer来触发菜单。
这意味着我在通过 HomeViewController 中的常规按钮触发菜单时遇到问题。 menuButton事件放置在 tabBarViewController.m中:
_menuButton.target = self.revealViewController;
_menuButton.action = @selector(revealToggle:);
所以我试图从HomeViewController调用一个方法来触发tabBarViewController中的按钮,如下所示:
HomeViewController.m
- (IBAction) onMenuClicked: (id)sender{
tabBar = [[tabBarViewController alloc] init];
[tabBar setupMenu]:
}
tabBarViewController.m
-(void) setupMenu{
[_realMenuButton sendActionForControlEvents:UIControlEventTouchUpInside];
[_realMenuButton addTarget:self.revealViewController action:@selector(revealToggle:) UIControlEventTouchUpInside];
}
在此示例中,我尝试制作realMenuButton和普通的UIButton。香港专业教育学院也试图作为UIBarButtonItem只是触发 @selector(revealToggle :) 但是,当我尝试从HomeViewController触发按钮时,应用程序中没有任何 react 。
不知道如何进行这项工作。还有其他想法或窍门吗?如果是,请具体说明!问候
最佳答案
是的,它仍然可以工作。
SWRevealViewController只是UIViewController的子类,因此您可以在应用程序中的任何时候使用它:
presentViewController:animated
。 请注意,您可以将
SWRevealViewController
中的手势添加到其内容 View Controller 中,这将改变导航 View Controller 中使用的行为,但这是可以预期的,并且您仍然可以完全控制其行为。编辑
我的应用程序的UI结构仍然不清楚-好像您在 View 中的VC实际上是HomeViewController时试图在
revealToggle
实例上调用SWRevealViewController
吗?如果什至看不到SWVC,这将如何工作?我最好的猜测是您的UI结构应如下所示:
TabBarController --->(root)UINavigationController --->(root)SWRevealViewController。
然后,在您的SWRevealViewController上,将HomeViewController设置为前 View Controller ,并将TableViewController设置为右 View 或左 View Controller 。
关于ios - iOS中的SWRevealViewController项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31929706/