UINavigationController pushViewController - PullRequest
       1

UINavigationController pushViewController

1 голос
/ 07 декабря 2011

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

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

Ответы [ 4 ]

3 голосов
/ 07 декабря 2011

Попробуйте и дайте мне знать, если это работает.

for (UIViewController* controller in [self.navigationController viewControllers]) {
    if ([controller isKindOfClass:[MapViewViewController class]])
    {
        NSLog(@"Cool");
    }

}
3 голосов
/ 07 декабря 2011

Проверьте, является ли его свойство navigationController nil.

1 голос
/ 07 декабря 2011

вы ищете

[self.navigationController popToViewController:controller animated:YES];

Используйте массив self.navigationController.viewControllers для ссылки на контроллер, который уже находится в стеке контроллера Nav.

0 голосов
/ 07 декабря 2011

Вы можете использовать флаги.Установите флаг, когда вы нажимаете viewcontroller первый раз.Сбросьте его, если вы попали в этот контроллер просмотра.Проверьте значение флага перед нажатием.Если установлено, оно уже в стеке, поэтому не нажимайте снова.иначе, не в стеке, поэтому нажмите его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...