У меня есть иерархия ViewControllers, с UINavigationViewController в качестве корня.
Как я могу узнать, был ли запущен какой-либо ViewController в первый раз или он был запущен в результате разматывания стека навигации?Как определить, что UIViewController был запущен в первый раз?
ответ
Предполагая, что вы хотите знать, если viewWillAppear:
(или viewDidAppear:
) вызывается, когда первый отображается контроллер вида или, если он отображается, потому что другой контроллер представления был удален с поля, вы можете легко сделать следующее:
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
if isBeingPresented() || isMovingToParentViewController() {
// This is the first time this instance of the view controller will appear
} else {
// This controller is appearing because another was just dismissed
}
}
Когда вы нажимаете новый viewcontroller на свой навигационный стек, он создается в первый раз, и когда вы выталкиваете его из стека, он освобождается или освобождается. поэтому, когда вы нажимаете или двигаетесь вперед, это первый раз, но когда вы возвращаетесь к любому диспетчеру просмотра из предыдущего, тогда текущий vc уже находится в памяти, а не в первый раз !!!
Если метод init вызван, это означает, что VC запускается в первый раз? –
да, вы можете сказать это !!! – Lion
- 1. Как определить, был ли запущен скрипт python в первый раз?
- 2. как определить, был ли выбран комбо-выбор в первый раз
- 3. Определить, был ли запущен поток
- 4. Linux: как определить, как был запущен процесс
- 5. Как определить, был ли GC.Collect() запущен вручную?
- 6. Как определить, какой вид активности был запущен?
- 7. Как определить, был ли запущен javascript-конструктор?
- 8. Как определить, был ли первый фрагмент открыт?
- 9. Как определить, что пользователь запускает приложение в первый раз?
- 10. jquery document.ready не был запущен один раз
- 11. Как аннулировать NSTimer, который был запущен несколько раз
- 12. Как узнать, запущен ли процесс в первый раз или нет
- 13. Как reliablly обнаружить, что UIViewController был уволен
- 14. mql4: как отключить экспертную торговлю, если он первый раз запущен
- 15. Как определить, был ли запущен редактор подпроцесса Sublime или Textedit
- 16. Как определить, был ли сценарий ранее запущен с использованием Ansible?
- 17. Проверьте, запущен ли метод в первый раз. C#
- 18. Как определить загрузку приложения на iphone в первый раз?
- 19. Как моя программа может определить, был ли запущен через mpirun
- 20. Утверждают, что в Laravel был вызван/запущен Mock Facade 4
- 21. Как узнать, когда был запущен скрипт?
- 22. ExecuteFetchRequest второй раз, если первый раз CoreData был пуст
- 23. Обнаруживает, был ли WKWebView запущен
- 24. Как узнать, почему был запущен экземпляр EC2.
- 25. cocoa - определить каталог, из которого был запущен инструмент?
- 26. Как определить первый вызов «/»?
- 27. Как определить загрузку конца UIViewController?
- 28. Функция огня только один раз, если другой уже был запущен
- 29. Как определить из моего приложения, что он был запущен с помощью JProfiler?
- 30. Как узнать, был ли запущен pc.onnegotiationneeded, потому что поток удален?
Вы говорите о выполнении проверки в функции 'viewWillAppear', чтобы узнать, появляется ли она, потому что это первый раз, когда появилось представление или потому, что было отклонено другое представление? – rmaddy
@rmaddy делает чек в функции viewWillAppear, чтобы узнать, появится ли это первый вид времени –
Каков ваш прецедент? Обычно я рекомендую вам управлять своим состоянием вне вашего контроллера представления и просто обновлять его в viewWillAppear. – PeejWeej