Поиск typeof Просмотр - PullRequest
       7

Поиск typeof Просмотр

0 голосов
/ 14 марта 2011

Я это мое первое приложение для iphone. Я приложение показывает другой вид и возвращается из свернутого режима. Я хочу определить, какое из этих представлений отображается в данный момент. Я пытался использовать "isa" в applicationDidEnterForeground() событие. Однако я думаю, что я не прав.

Ответы [ 2 ]

0 голосов
/ 14 марта 2011

Использование isa на самом деле не является ядром этой проблемы, насколько я вижу - isa связано с идентификацией класса, но ваша основная проблема здесь на самом деле - найти экземпляр класса, который вам нужно идентифицировать ! С чего вы обращались к свойству isa?

Этот вопрос может быть связан, хотя - в частности, эта часть моего ответа:

Там нет из коробки способ сказать который является «текущим» UIViewController, кстати. Но ты может найти способ обойти это, например, там являются делегированными методами UINavigationController для выяснения когда представлен UIViewController в нем. Вы могли бы использовать такую ​​вещь, чтобы отслеживать последние UIViewController который был представлен.

Что-то, что может быть полезно: начиная с iOS4, UIWindow имеет свойство rootViewController, которое установлено на текущий контроллер корневого представления. Очевидно, что это может быть UINavigationController или какой-либо другой агрегатор UIViewController, так что вам все равно придется поработать в этом случае ...

0 голосов
/ 14 марта 2011

Вы можете использовать свойство tag, чтобы пометить ваши представления и использовать это, чтобы идентифицировать определенные представления. Это может быть лучше, поскольку свойство tag будет идентифицировать экземпляры классов, а не только тип класса.

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

- (BOOL)isKindOfClass:(Class)aClass

или

- (BOOL)isMemberOfClass:(Class)aClass

Вы используете метод экземпляра class объекта, чтобы вернуть класс объекта. isKindOfClass: возвращает true, если класс экземпляра такой же, как и предоставленный (или это подкласс этого класса), где isMemberOfClass: возвращает true, если класс экземпляр точно такой же, как и предоставленный. Например:

if ([myObject isMemberOfClass:[UITableView class]])
{
    // Do stuff
}
...