2013-06-28 2 views
1

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

self.navigationController.viewControllers.count > 1 

Есть ли лучшие решения?

+0

Это решение достаточно хорошее Я думаю, ~ –

ответ

3

Если вы конвертируете то, что описываете непосредственно в код, это будет что-то вроде этого.

NSUInteger index = [self.navigationController.viewControllers indexOfObject:self]; 
BOOL b = index != NSNotFound && index != 0; 

Код, который вы написали, не может работать, когда ваш UINavigationController не на вершине стека.

+0

спасибо за указание на ошибку в моем исходном коде! –

1

[self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex: ([self.navigationController.viewControllers count] -2)] анимированный: ДА];