UINavigationController ViewDidDisappear没有为视图触发

时间:2010-12-27 23:04:54

标签: iphone ipad ios uinavigationcontroller xamarin.ios

我正在使用MonoTouch。当我将一个新控制器推入UINavigationController的堆栈时,它工作正常。当我点击后退按钮时,没有事件触发,即使在视觉上,视图也会从堆栈中弹出。具体来说,我想使用ViewDidDisappear和ViewDidAppear来做一些事情:

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也没有被调用!开始对这个问题失去理智。

3 个答案:

答案 0 :(得分:1)

事实证明,如果我在ViewController中有导航控制器,则不会触发这些事件。

答案 1 :(得分:0)

如果使用以下命令从视图控制器启动导航控制器,则会调用它:

[self presentModalViewController:navigationController animated:YES];

(对不起,这不是MonoTouch - 我在常规的Objective-C中遇到了问题。这是我的解决方案。)

Look at Dustin Clark's comment here.

答案 2 :(得分:0)

如果它没有被调用,请自己调用它。关于它没有什么神奇的事情发生,它只是ViewController上的一个方法。让它知道它即将消失。