SWRevealViewController

SWRevealViewController

注意:问题已解决。

故事来了。我在我的项目中使用RevealViewController。我还隐藏了navigationBars:

[self.navigationController setNavigationBarHidden];

在下面的图片中可以看到我的项目,并且在 tabBarViewController 中实现了“ menuButton ”。

ios - iOS中的SWRevealViewController项目-LMLPHP

由于我的界面外观使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/

    10-10 20:12