SWRevealViewcontroller UIbutton: действие первого нажатия не работает, после этого работает нормально - PullRequest
0 голосов
/ 13 февраля 2019

Я сделал несколько демонстрационных проектов для бокового меню. У меня есть 3 VC.Я использую правое боковое меню, чтобы показать боковое меню.Здесь с vc1 на vc 2 push.И в vc2 у меня есть одна кнопка, чтобы открыть меню справа.Но здесь, когда я нажимаю в первый раз, это не работает.После второго щелчка он не работает.

Сэм, если я вернусь и приду снова.Сначала нажмите его не работает.После второго щелчка работает нормально.Любая идея, почему это происходит?.

Мой демонстрационный проект: здесь

Я добавил действие Uibutton, как показано ниже.

// от v1 до v3 vc

- (IBAction)tap:(id)sender {
NSString * storyboardName = @"Main";
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
    VC3 * vc = [storyboard instantiateViewControllerWithIdentifier:@"VC3"];
    [self.navigationController pushViewController:vc animated:YES];

}

для отображения меню:

- (IBAction)DASD:(id)sender {
     [self.btn addTarget:self.revealViewController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];
}

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Заставить вас выполнить действие цели в ViewDidLoad.Не создавайте ibAction, чтобы вызвать боковое меню.

- (void)viewDidLoad {
    [super viewDidLoad];
    SWRevealViewController *revealViewController = self.revealViewController;
    if ( revealViewController )
    {
        [self.yourButton addTarget:self.revealViewController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];

    }
}
0 голосов
/ 14 февраля 2019

Я проверил ваш код.вам нужно сделать только одно изменение.

[self.btn addTarget:self.revealViewController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];

удалить вышеуказанный код из - (IBAction)DASD:(id)sender и добавить viewDidLoad метод файла VC3.m.

поэтому ваш код файла VC3.m выглядит следующим образом: -

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.btn addTarget:self.revealViewController action:@selector(rightRevealToggle:) forControlEvents:UIControlEventTouchUpInside];
}

- (IBAction)DASD:(id)sender {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...