2010-08-04 2 views
0

Мне нужно проверить, какой UIViewController активен, поэтому я реализовал некоторые случаи в зависимости от результата.Как проверить, какой UIViewController активен

[self.navigationController.visibleViewController className] 

Это всегда возвращает null.

Я проверяю с этим утверждением:

if([iDetailController isKindOfClass:[IDetailController class]]) 

, но это не удается, пожалуйста, помогите мне, если я делаю что-то здесь не так.

ответ

0

Используйте следующий метод:

if ([self isMemberOfClass:[IDetailController class]]) {

CFShow(@"Yep, it's the IDetailController controller"); }

isMemberOfClass говорит вам, если экземпляр является точным экземпляром этого класса. Там также isKindOfClass:

if ([self isKindOfClass:[BaseView class]]) {

CFShow(@"This will log for all classes that extend BaseView");` 

}

isKind проверяет, что класс является продолжением определенного класса.

1

Используйте [self.navigationController.topViewController class], чтобы получить активный контроль над классом контроллера. Поэтому if ([self.navigationController.topViewController isMemberOfClass:[IDetailController class]]) {...} должен работать.