SWRevealViewController и другие контроллеры представления

В моем приложении я использую SWRevealViewController для бокового меню, и я правильно его настроил. Моя проблема в том, что из контроллера представления с боковым меню у меня есть переход к другому контроллеру представления, который не использует SWRevealViewController. Затем в действии вернитесь к SWRevealViewController. (контролер викторины). По какой-то причине кнопка меню перестает отображать меню. Вот что происходит:

Гиф

(извините за плохое качество, использовал quicktime для записи, затем онлайн-конвертер в gif).

А вот макет моей раскадровки: pic

Переход к контроллеру викторины осуществляется по нажатию.

Как заставить кнопку работать?


person Minebomber    schedule 25.12.2015    source источник


Ответы (1)


Я понял ответ некоторое время назад. Все, что вам нужно сделать, это создать переход к исходному контроллеру. Если вы не знаете, как это сделать, следуйте инструкциям.

  • Добавьте метод раскрутки к исходному контроллеру

Мой контроллер называется QuizViewController, ваш, наверное, другой.

// In QuizViewController.m
...
- (void)unwindToQuiz:(UIStoryboardSegue *)segue
{
    // Get data from sender by segue.sourceViewController
}

Этот метод будет вызываться, когда произойдет переход, поместите сюда код, аналогичный методу prepareForSegue.

  • Далее создайте переход в раскадровке

В контроллере вы нажимаете правой кнопкой мыши и перетаскиваете (удерживая нажатой кнопку мыши) из контроллера представления, чтобы выйти, и выберите свой метод -unwindToQuiz.

Теперь выберите свой переход на боковой панели, затем добавьте идентификатор в переход.

**СОВЕТ: если вы не хотите инициировать переход программно, перетащите элемент пользовательского интерфейса (например, UIButton) и перетащите его, чтобы выйти. Идентификатор не нужен).

Чтобы инициировать переход, выполните `[self PerformSegueWithIdentifier:@"yourIdentfier" sender:self];

И готово! Это не работает с push, потому что свойство revealViewController становится равным нулю

person Minebomber    schedule 12.01.2016