В раскадровке на панели инспектора есть свойство, которое гласит: «Является ли контроллер начального просмотра». Как получить доступ к этому свойству программно? Я не хочу его менять. Я просто хочу проверить, является ли контроллер представления в настоящее время начальным контроллером представления. Я указал условия в AppDelegate, в соответствии с которыми он должен включить контроллер представления в контроллер корневого представления. Как только он на самом деле является контроллером корневого представления, я хочу запустить некоторый код из самого контроллера представления (но ТОЛЬКО, когда он является контроллером корневого представления). Поэтому я не могу просто запустить код из метода ViewDidLoad. Я хочу проверить, является ли контроллер представления первым контроллером корневого представления, и если это так, ТОГДА я хочу запустить некоторый код. Есть идеи?Как проверить, является ли контроллер представления исходным контроллером? (SWIFT 3)
ответ
Контроллер начального представления из раскадровки не совпадает с контроллером корневого представления для приложения. У вас может быть несколько раскадровки, например, каждый со своими собственными начальными контроллерами представлений. Некоторая часть кода, возможно, также изменила текущий rootViewController, сделав его отличным от начального контроллера представления, запущенного из приложения.
Чтобы проверить, является ли текущий контроллер представления является контроллер представления корня, используйте:
if self == UIApplication.shared.keyWindow?.rootViewController {
/*do stuff*/
}
Будьте осторожны, где вы разместите это, хотя. Я бы сделал проверку в viewWillAppear или viewDidAppear вместо viewDidLoad.
@FreddyBenson: Это правильный ответ. Если он отвечает на ваш вопрос, выберите его как правильный ответ. – mttdbrd
- 1. Как проверить, нажат ли контроллер навигации или контроллер корневого представления?
- 2. Swift: контроллер разделенного представления на универсальном приложении, который не является контроллером начального представления
- 3. Как проверить, является ли контроллер представления может выполнить SEGUE
- 4. Как узнать, является ли UIViewController контроллером корневого представления?
- 5. Как проверить, что контроллер представления был представлен?
- 6. Как проверить, действительно ли значение является объектом в Swift 3?
- 7. Использовать протокол между классом и контроллером представления Swift 3
- 8. Как получить UIBarButtonItem, чтобы открыть новый контроллер представления swift 3
- 9. Как передать managedObjectContext в AppDelegate на правый контроллер представления, если он является контроллером дочернего представления?
- 10. Представляем новый контроллер представления под контроллером текущего представления
- 11. переместить данные в другой контроллер представления, но контроллер второго представления нагрузки сначала перед первым контроллером представления
- 12. Как проверить, является ли объект коллекцией? (Swift)
- 13. представления с контроллером уволенного
- 14. Как проверить, является ли устройство iPad 3?
- 15. В программировании IOS, является ли «Контроллер просмотра» фактически контроллером?
- 16. Является ли контроллер rails g контроллером несколько раз безопасным?
- 17. window.rootViewController не является текущим контроллером представления
- 18. Настройка делегата между контроллером представления и не представленным контроллером представления
- 19. Swift 3 Представляющий контроллер просмотра
- 20. Взаимодействие между подклассом nstextfield и контроллером представления в swift
- 21. Как передать данные между двумя контроллерами представления TabBarContoller, где первым контроллером представления является TableViewController
- 22. Swift 3 - Раздвижные представления стека?
- 23. swift: контроллер освежающего вида
- 24. Является ли parentViewController всегда навигационным контроллером?
- 25. Контроллер корневого контроллера окна не является контроллером раздельного просмотра
- 26. AppDelegate, как настроить навигационный контроллер, когда корневой контроллер является контроллером панели управления.
- 27. Невозможно отправить значение int между контроллером представления и контроллером табличного представления в swift
- 28. Присутствует контроллер представления перед первым контроллером показан видом
- 29. как я могу передать мыльный объект одному контроллеру представления в другой контроллер представления в Swift-3
- 30. SWIFT 3: Segue с контроллером навигации
Я бы переформулировал этот вопрос - то, что вы действительно ищете, - это способ проверить, что представляет собой текущий rootViewController, а не что-то связанное с начальным vc раскадровки. – BJHStudios
Вы можете попытаться пометить представление корневого диспетчера представлений и после этого проверить тег/представление. – Dasem
@BJHStudios да, извините, это не то, что я имел в виду. Не понял, какова существенная разница между этими двумя вещами, но я ищу способ проверить, что представляет собой контроллер начального представления (контроллер просмотра, который отображается сначала после завершения запуска приложения). Также возможно изменить код внутри AppDelegate, потому что я просто установил свой VC как свой rootViewController, в то время как все, что я хотел сделать, это установить его как начальный VC, который сначала отображается. –