2015-05-27 2 views
1

Я использую SWRevealController в моем приложении и следовал инструкции описаны здесь: http://www.appcoda.com/ios-programming-sidebar-navigation-menu/кнопка SWRevealController не обжиг revealToggle: Действие

Однако оказывается, что sidebarButton не срабатывает тумблер

я поставил его следующим образом:

Начальный класс View Controller был установлен SWRevealViewController

Segue создана связывая его с т он NavigationViewController и переход был дан идентификатор sw_front

У меня есть menuViewController что наследнике UITableViewController

Я создал SEGUE от первоначального вида контроллера, чей класс SWRevealViewController к menuViewController и дал, что непосредственно перейти идентификатор sw_rear

В mainViewController.m я импортировал SWRevealViewController.h и я поставил кнопку меню

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

В mainViewController в методе viewDidLoad у меня есть следующие:

SWRevealViewController *revealViewController = [self revealViewController]; 

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

Когда я запустить приложение и поставить точку останова в точке, где я устанавливаю цели и действия для кнопки я могу видеть, что они присваиваемые.

Однако, когда я нажимаю кнопку, метод revealViewController.revealToggle не стреляет.

Мне было интересно, может быть, мне нужно настроить событие, которое его запускает - как в случае с событием touchupInside. Но я просмотрел весь образец кода https://github.com/appcoda/Slideout-Sidebar-Demo/tree/master/SidebarDemo и не вижу, где они это сделали. Я не понимаю, почему действие openToggle не срабатывает.

Большое спасибо за любые предложения

ответ

1

Вы должны поместить кнопку на действии на @property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton;

enter image description here

Вы можете увидеть пример этого одного https://github.com/John-Lluch/SWRevealViewController/tree/master/RevealControllerStoryboardExample2

+0

Спасибо Руния, но я уже подключили элемент кнопки «Брелок» к раскадровке, как вы описали выше. Я подумал, возможно, это потому, что он расположен на панели навигации, предоставляемой контроллером навигации, что может быть частью проблемы, но когда я нажимаю кнопку, я вижу, что она реагирует на мое прикосновение (это подчеркивает), но это не запустите метод openToggle. –

+0

@ LindaKeating посмотрите на мой простой пример https://drive.google.com/file/d/0B_4RHbK4d8zRRFdDNExSMThjTVE/view?usp=sharing – runia

+0

Спасибо, что мне очень повезло в вашем проекте и, в конце концов, я понял, что использовал неправильный UIControl - У меня был UIButton вместо BarButtonItem. –