我正在使用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也没有被调用!开始对这个问题失去理智。
答案 0 :(得分:1)
事实证明,如果我在ViewController中有导航控制器,则不会触发这些事件。
答案 1 :(得分:0)
如果使用以下命令从视图控制器启动导航控制器,则会调用它:
[self presentModalViewController:navigationController animated:YES];
(对不起,这不是MonoTouch - 我在常规的Objective-C中遇到了问题。这是我的解决方案。)
答案 2 :(得分:0)
如果它没有被调用,请自己调用它。关于它没有什么神奇的事情发生,它只是ViewController上的一个方法。让它知道它即将消失。