2010-12-27 2 views
1

Я использую MonoTouch. Когда я нажимаю новый контроллер на стек UINavigationController, он отлично работает. Когда я нажимаю кнопку «Назад», ничего не срабатывает, хотя визуально вид открывается из стека. В частности, я хочу использовать ViewDidDisappear и ViewDidAppear делать некоторые вещи:UINavigationController ViewDidDisappear не стреляет для просмотра

SurveyEditor editor = new SurveyEditor(surveyInstance); 
NavigationController.PushViewController(editor, true); 

затем в SurveyEditor:

public override void ViewWillDisappear (bool animated) 
{ 
    Console.WriteLine("SurveyEditor ViewWillDisappear"); 
    base.ViewWillDisappear (animated); 
} 

public override void ViewDidDisappear (bool animated) 
{ 
    Console.WriteLine("SurveyEditor ViewDidDisappear"); 
    base.ViewDidDisappear (animated); 
} 

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

+0

Дополнительная информация: ViewDidAppear также не стреляет. ViewDidLoad, однако. – whitehawk

ответ

0

Если вы запускаете контроллер нав с точки зрения контроллера с помощью следующих, она дозвонились:.

[self presentModalViewController:navigationController animated:YES]; 

(жаль, что это не MonoTouch - я столкнулся с проблемой в регулярном Objective-C Это мое решение.)

Look at Dustin Clark's comment here.

1

Оказывается, если у меня есть контроллер навигации внутри ViewController, эти события не срабатывают.

+0

просто столкнулся с этим. вау, какой облом. – nont

0

Позвоните сами, если это не вызывался. В этом нет ничего волшебного, это всего лишь метод на этом ViewController. Пусть он знает, что он вот-вот исчезнет.

+2

Мне всегда плохо, когда я вызываю методы, которые должны были вызвать другие lib/sys. – miho