Проведите назад и вперед на навигационный контроллер - PullRequest
2 голосов
/ 05 мая 2011

Каждый UIViewController, начиная с rootViewController, использует [self.navigationController pushViewController nextView], чтобы выдвигать новые представления.Swipe работает отлично.

Как я могу реализовать то же поведение для прокрутки вперед?Точнее, как мне сохранить UIViewController после нажатия кнопки «назад» или «назад», чтобы я мог добавить его снова в случае перемещения вперед?

1 Ответ

5 голосов
/ 05 мая 2011

Чтобы отслеживать ваши контроллеры представления, вы можете сделать следующее:

  • Добавить переменную экземпляра (как сильное свойство) nextViewController для всех ваших контроллеров представления

  • Всякий раз, когда вы нажимаете новый контроллер вида, установите nextViewController на контроллер выдвинутого вида

  • Теперь, когда пользователь перемещается вперед, вы просто нажимаете nextViewController. Но сначала проверьте на nil. Если currentViewController.nextViewController = nil, вы знаете, что пользователь никогда не переходил за пределы этой точки, и вы обрабатываете его соответствующим образом. Вы можете просто проигнорировать движение вперед или отправить сообщение пользователю.

Чтобы справиться с самой прокруткой:

  • Просто добавьте UISwipeGestureRecognizer в каждый контроллер вида view.

  • Затем, когда вызывается ваш метод смахивания, проверьте свойство direction распознавателя жестов. Если это было движение вперед, нажмите nextViewController, как описано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...