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

Проверить текущий контроллер просмотра на экране в ios

Я представил UINavigationController, содержащий UIViewController для собственного объекта со следующим кодом

  drawController = [[DrawImageViewController alloc] initWithNibName:nil bundle:nil];
[drawController setDrawControllerDelegateObject:self];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:drawController];
[self presentModalViewController:nav animated:YES];
[nav release];

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

    if (drawController && [drawController isBeingPresented])

Но это не работает для меня, а также для iOS 5.0, поэтому я застрял здесь. Пожалуйста, помогите мне узнать, как мне узнать, как появился текущий UIViewController на экране какого класса и будет ли drawContoller показываться на экране или нет? Извините за мои опечатки, если они есть. Любая помощь будет оценена.

Спасибо Нехе Мехта

4b9b3361

Ответ 1

Не самый красивый код, но это должно работать:

if ([self.presentedViewController isKindOfClass:[UINavigationController class]] &&
   ((UINavigationController *)self.presentedViewController).topViewController == drawController) {
   …

Ответ 2

Используйте navigationController visibleViewController property и isKindOfClass method, чтобы узнать, что на top:

if([self.navigationController.visibleViewController isKindOfClass:[yourcontroller class]])
   //exists
else
   //not exists

Ответ 3

Проверьте метод UINavigationController visibleViewController.

Для документации см. UINavigationController