ios - iOS 中的 SWRevealViewController 项目

标签 ios uibutton uinavigationbar uibarbuttonitem swrevealviewcontroller

注意:问题已解决。

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

[self.navigationController setNavigationBarHidden];

我的项目如下图所示,“menuButton”是在tabBarViewController中实现的。

enter image description here

由于我的界面外观导致 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];
}

在这个例子中,我试图制作真实的菜单按钮和普通的 UIButton。我也试过作为 UIBarButtonItem 来触发 @selector(revealToggle:) 但是当我尝试从 HomeViewController 触发按钮时应用程序没有任何反应。

不确定我将如何完成这项工作。还有其他想法或技巧吗?如有请具体说明!问候

最佳答案

是的,它仍然有效。 SWRevealViewController 只是 UIViewController 的子类,因此您可以在应用程序中的任何位置使用它:

  1. 通过在某个时刻调用 presentViewController:animated
  2. 通过在导航堆栈等中使用它。

请注意,您可以将 SWRevealViewController 中的手势添加到其内容 View Controller ,这将改变导航 View Controller 中使用的行为,但这是预料之中的,您仍然可以完全控制它的行为。

编辑

我仍然不清楚您的应用程序的 UI 结构 - 看起来您正试图在 VC 处于 View 中时在 SWRevealViewController 的实例上调用 revealToggle实际上是 HomeViewController?当甚至看不到 SWVC 时,这将如何工作?

我最好的猜测是您的 UI 结构应该如下所示:

TabBarController --->(根)UINavigationController --->(根)SWRevealViewController。

然后,在您的 SWRevealViewController 上,将 HomeViewController 设置为前 View Controller ,将 TableViewController 设置为右 View Controller 或左 View Controller 。

关于ios - iOS 中的 SWRevealViewController 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31929706/

相关文章:

ios - 通过应用内购买解锁完整版本的安全方式

ios - UIButtonTypeDetailDisclosure : unrecognised selector sent to instance

ios - 如何在应用程序和它的扩展之间共享一个类?

ios - 为什么当我执行 removefromsuperview 时内存仍然存在?

ios - 通过代码禁用 RoundedRect 类型的 UIButton 的用户交互

swift - '#selector' 的参数不引用 Swift 按钮目标中的 '@objc' 方法、属性或初始值设定项

swift - 喜欢大标题和 RefreshControl 效果不佳

ios - presentedViewController 中的 PresentViewController 不显示导航栏

ios - XLPagerTabStrip:在 ButtonBarView 和 NavigationBar iOS 之间添加空间

ios - PDFKit Swift 控制缩放