Определите, существует ли экземпляр подпредставления с конкретным именем - PullRequest
1 голос
/ 15 марта 2011

Как лучше всего определить, существует ли экземпляр подпредставления с определенным именем? У меня есть приложение с веб-представлением, которое добавляет пользовательский индикатор активности в форме подпредставления, используя методы делегирования веб-просмотра webviewDidStartLoad и webviewDidFinishLoad для добавления и удаления подпредставления. Я думал, что это работает нормально, но с тех пор я заметил, что есть случаи, когда webviewDidStartLoad и webviewDidFinishLoad не обязательно запускаются парами. Например, если я начну загружать веб-просмотр и затем отправлять приложение в фоновый режим (до завершения загрузки веб-просмотра), а затем возвращать его на передний план, я получу, что подпредставление индикатора активности никогда не удаляется (потому что когда я отправляю приложение в фоновом режиме webviewDidFinishLoad никогда не вызывается, поэтому, когда приложение возвращается на передний план, webviewDidStartLoad добавляет еще один экземпляр представления поверх старого экземпляра. По сути, это подпредставление добавляется дважды и удаляется только один раз.

Итак, я хочу добавить только подпредставление, если оно еще не существует, и удалить его, только если оно действительно существует. Так, каков наилучший способ определить, существует ли или нет подпредставление? Спасибо!

Ответы [ 2 ]

1 голос
/ 15 марта 2011

Каждое представление имеет свойство «tag», которое представляет собой целое число, которое вы можете использовать для идентификации объектов представления в вашем приложении. Существует метод "viewWithTag", который возвращает представление, тег которого соответствует указанному значению.

1 голос
/ 15 марта 2011

Вы должны отслеживать подпредставление в свойстве класса, в котором у вас есть методы делегата webview.Если свойство имеет значение nil, подпредставления нет, и вы должны установить его.При его удалении установите для свойства значение nil.

И / или создайте его один раз, а затем добавьте / удалите представление, не отменяя и не выделяя его снова и снова.

...