SWRevealController按钮不触发revealToggle:动作

时间:2015-05-27 17:18:24

标签: ios objective-c swrevealviewcontroller

我在我的申请中使用SWRevealController,并按照此处所述的说明操作:http://www.appcoda.com/ios-programming-sidebar-navigation-menu/

但似乎sidebarButton不会触发切换

我已将其设置如下:

初始视图控制器类已设置为SWRevealViewController

已创建Segue,将其链接到NavigationViewController,并且segue已被赋予标识符sw_front

我有menuViewController来自UITableViewController

的子类

我从初始视图控制器创建了一个segue,其类为SWRevealViewControllermenuViewController,并为该segue提供了一个标识符sw_rear

mainViewController.m我已导入SWRevealViewController.h,我已设置菜单按钮

@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;

在viewDidLoad方法的mainViewController中,我有以下内容:

SWRevealViewController *revealViewController = [self revealViewController];

if ( revealViewController )
{
    [self.sidebarButton setTarget:self.revealViewController];
    [self.sidebarButton setAction: @selector(revealToggle:)];
    [self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer];
}

当我运行应用程序并在我设置目标的位置设置断点并按下Action按钮时,我可以看到它们已被分配。

但是,当我单击按钮时,revealViewController.revealToggle方法未触发。

我想知道是否需要设置触发它的事件 - 就像touchupInside事件一样。但我查看了所有示例代码https://github.com/appcoda/Slideout-Sidebar-Demo/tree/master/SidebarDemo并且无法看到他们在哪里做了。我不知道为什么revealToggle动作没有触发。

非常感谢任何建议

1 个答案:

答案 0 :(得分:1)

您需要将按钮放在@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;

上的操作上

enter image description here

你可以看到这个例子 https://github.com/John-Lluch/SWRevealViewController/tree/master/RevealControllerStoryboardExample2