2013-02-21 5 views
0

В настоящее время я использую это руководство, чтобы заменить корневой контроллер другим контроллером. http://starterstep.wordpress.com/2009/03/05/changing-a-uinavigationcontroller%E2%80%99s-root-view-controller/UINavigationController FUNKY

В настоящее время я получил это на своем приложении.

Рассмотрим следующий сценарий, View A (корень) -> View B

On View B, есть логическое значение, называемое FirstLine (Да в viewDidLoad), который используется для алгоритма синтаксического анализа. Алгоритм отлично работает, когда мы впервые заходим в представление. (Вид А -> вид B)

Однако этот новый сценарий ломает мой алгоритм синтаксического анализа,

вид А -> Вид B (оттеснены) -> Вид А -> Вид B (брейки)

Здесь логическое значение (firstLine) чередуется странно, когда предполагается, что при первом входе в представление будет установлено значение YES. Я начинаю верить, что первая точка зрения B все еще работает на фоне; таким образом, я попробовал popViewController, но это действительно не сработало. Это дало мне черный экран, который, очевидно, я не хочу.

Любые идеи?

EDIT: решаемые

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

+0

Я не уверен, что я вас понимаю. вы хотите firstline = YES, когда вы вернетесь в View A? Затем вы должны установить значение в ViewWillApear или viewDidAppear. – katzenhut

+0

это логическое значение установлено в поле зрения B в viewDidLoad Я использую это логическое значение в поле зрения B для синтаксического анализа. – freedom

ответ

0
[self.navigationController setViewControllers:myPreparedNewVCsStack 
animated:YES]; 

Вы можете выбирать, перемещать и заменять любые контроллеры просмотра:

NSMutableArray *tempStack = [NSMutableArray arrayWithArray:self.navigationController.viewControllers]; 

[tempStack filterUsingPredicate:[NSPredicate predicateWithFormat:@"class != %@", [AViewController class]]]; // the predicate can be even @"firstEnter == YES" 

Ваш последний контроллер представления в новый стек будет топ один!

Смежные вопросы