У меня есть два ViewControllers, первый и второй. Они связаны с шоу (push) segue. Я нажимаю кнопку on firstViewController, чтобы перейти к secondViewController. Затем, используя автоматически добавленный навигационный контроллер <First
, я возвращаюсь к firstViewController. Однако здесь я хотел бы получить предупреждающее сообщение при нажатии навигационного контроллера на firstViewContoller. Как мне это сделать?Как определить, нажата ли кнопка навигации навигации (push) segue?
ответ
Вы можете работать по методу viewWillDisappear на втором контроллере представления, как это:
- (void)viewWillDisappear:(BOOL)animated
{
if(self.isMovingFromParentViewController){
NSLog(@"Controller being popped");
}
}
В этом случае сам. isMovingFromParentViewController будет правдой, если контроллер выскочит.
Вы также можете проверить себя. isMovingToParentViewController на viewWillAppear, например, чтобы проверить, что контроллер нажат.
Также я. isBeingDismissed и сам. isBeingPresented доступны и относятся к тому, когда контроллер представляется/уволен (по тексту).
То, что вы ищете, это UINavigationControllerDelegate
.
Я считаю, что метод, который дает вам сообщение, Вам необходимо это
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
И
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated;
В вашем CustomViewController, вы будете хотеть, чтобы соответствовать UINavigationControllerDelegate
протоколу, как это:
@interface CustomViewController : UIViewController <UINavigationControllerDelegate>
И затем переопределить методы делегата выше на g и те сообщения, которые вы ищете.
Вот полная реализация в Swift:
import UIKit
class ViewController: UIViewController, UINavigationControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
println(viewController)
}
}
class FirstViewController: ViewController {
}
class SecondViewController: ViewController {
}
- 1. Редактирование контроллера навигации из push segue
- 2. Контроллер навигации Segue черным
- 3. Скрыть панель навигации вида, когда дочерний просмотр выполняет push segue
- 4. (iOS) Почему второй «push» segue в контроллере навигации всегда сбой?
- 5. Добавить UIView на панель навигации после Push Segue
- 6. Unity, Как определить, нажата ли кнопка OnGUI
- 7. Как определить, нажата ли кнопка или нет
- 8. Как определить, была ли нажата кнопка «Вверх»
- 9. Как определить, была ли нажата конкретная кнопка?
- 10. Кнопка навигации нажмите вне
- 11. Кнопка навигации Расположение пользователя
- 12. Как определить, была ли нажата или нажата кнопка?
- 13. Кнопка обратного канала навигации
- 14. Как перевести push на контроллер навигации из UICollectionViewCell?
- 15. ИОС навигации стека с использованием раскадровки SEGUE
- 16. Android - Кнопка ящика навигации
- 17. Кнопка навигации не отображается
- 18. Кнопка навигации не отображается
- 19. Пользовательская кнопка в навигации
- 20. Что происходит, когда кнопка возврата нажата в навигации.
- 21. Хотите добавить панель поиска на панели навигации, когда кнопка поиска нажата на панели навигации
- 22. iOS9 панели навигации Назад Кнопка не работает
- 23. Определить пользователя навигации поведение
- 24. SWIFT 3: Segue с контроллером навигации
- 25. Как определить, была ли нажата кнопка «Назад» или кнопка «Вперед»?
- 26. Кнопка навигации контроллера навигации не отображается при использовании второй раскадровки
- 27. Как определить, что из контроллера навигации выдается диспетчер навигации?
- 28. определить, нажата ли кнопка стрелки из QScrollBar
- 29. кнопка «Назад» отсутствует в моей навигации controntroller
- 30. Кнопка «Назад» не отображается в панели навигации?
Не совсем понятно, о чем вы просите, но, возможно, 'prepareForSegue:' является то, что вы ищете. – Jack
Какое «оповещение»? Как UIAlertView/UIAlertController? –
На втором экране управления панель навигации будет выглядеть так: '