Подтвердить что ты не робот

Проверьте, загружен ли просмотр во время выполнения

Можно ли загрузить какой-либо вид, не проверяя исходный код этого контроллера представления (например, viewDidLoad, viewWillAppear и т.д.).

или как я могу проверить на время выполнения/динамически, если какое-либо представление загружено, чтобы захватить subviews.

4b9b3361

Ответ 1

Если у вас есть экземпляр контроллера вида, вы можете задать его:

viewController.isViewLoaded

Ответ 2

Я не совсем понимаю, что вы подразумеваете под "загруженным". В зависимости от вашего определения "загруженный" вы могли:

  • Проверьте, является ли представление nil (самое широкое определение загружено, хотя это будет зависеть от того, кто закончит просмотр, когда он будет освобожден, чтобы вы не получили EXC_BAD_ACCESS).

  • Отметьте [view superview], чтобы увидеть, имеет ли представление представление.

  • Проверьте [view window], чтобы увидеть, является ли представление частью окна (предпосылка для того, чтобы быть "на экране" )

  • Предполагая, что существует соответствующий UIViewController, запросите свойство controller isViewLoaded, чтобы увидеть, загрузило ли оно представление в память. Это особенно помогает в рассмотрении проблем жизненного цикла.

Есть, вероятно, другие интерпретации "загруженных" и других вещей, которые вы можете проверить, но это первые вещи с моей головы.

Ответ 3

Не совсем уверен в отношении вашего использования, но это может помочь, если вы просто хотите запросить иерархию представления.

- (UIView *)viewWithTag:(NSInteger)tag
  • Отметьте все интересующие вас взгляды, например. тег на определенных взглядах, представляющих интерес; "ВажныеПросмотр1", "ВажныйПроект2",...

  • Для вызова вышеупомянутого API

    вам нужно (родительское) представление,
  • Вызов будет запрашивать представление (родительский) и все дочерние объекты.

  • Отфильтровать представления по имени пользовательского тега. (если тег начинается с "Важный экран" )