Ответ 1
Если у вас есть экземпляр контроллера вида, вы можете задать его:
viewController.isViewLoaded
Можно ли загрузить какой-либо вид, не проверяя исходный код этого контроллера представления (например, viewDidLoad, viewWillAppear и т.д.).
или как я могу проверить на время выполнения/динамически, если какое-либо представление загружено, чтобы захватить subviews.
Если у вас есть экземпляр контроллера вида, вы можете задать его:
viewController.isViewLoaded
Я не совсем понимаю, что вы подразумеваете под "загруженным". В зависимости от вашего определения "загруженный" вы могли:
Проверьте, является ли представление nil
(самое широкое определение загружено, хотя это будет зависеть от того, кто закончит просмотр, когда он будет освобожден, чтобы вы не получили EXC_BAD_ACCESS).
Отметьте [view superview]
, чтобы увидеть, имеет ли представление представление.
Проверьте [view window]
, чтобы увидеть, является ли представление частью окна (предпосылка для того, чтобы быть "на экране" )
Предполагая, что существует соответствующий UIViewController, запросите свойство controller isViewLoaded
, чтобы увидеть, загрузило ли оно представление в память. Это особенно помогает в рассмотрении проблем жизненного цикла.
Есть, вероятно, другие интерпретации "загруженных" и других вещей, которые вы можете проверить, но это первые вещи с моей головы.
Не совсем уверен в отношении вашего использования, но это может помочь, если вы просто хотите запросить иерархию представления.
- (UIView *)viewWithTag:(NSInteger)tag
Отметьте все интересующие вас взгляды, например. тег на определенных взглядах, представляющих интерес; "ВажныеПросмотр1", "ВажныйПроект2",...
Для вызова вышеупомянутого API
вам нужно (родительское) представление,Вызов будет запрашивать представление (родительский) и все дочерние объекты.
Отфильтровать представления по имени пользовательского тега. (если тег начинается с "Важный экран" )