我在UI中使用这段简单的代码:
challengeStartTime = new DateTimeElement("Start Time",DateTime.Now);
Root = new RootElement ("Add Event") {
new Section (""){
challengeStartTime
}
};
我使用此代码一段时间,一切都按预期工作。现在我将应用程序迁移到iOS 7并出现这种奇怪的行为:1。导航到DateTimeElement 2.导航回上一个屏幕(NavigationController-Bar中有通常的Back-Button)3。再次导航到DateTimeElement(例如,如果我输入错误的时间)4。NavigationController中没有后退按钮。无法导航回来。
我再次验证了我的旧版本(Appstore,“win4youth”),并且没有问题。
任何可能导致这个奇怪问题的想法?我已经下载了当前版本的https://github.com/migueldeicaza/MonoTouch.Dialog,已编译并尝试过,但行为相同。我正在为其他屏幕使用故事板,也许它与此相关?
感谢您的帮助
答案 0 :(得分:0)
感谢@Krumelur指出正确的方向!
我的DialogViewController中有这个代码:
public override void ViewDidAppear (bool animated)
{
//this "hack" is necessary because we use a DialogViewController together with a Storyboard and have no control over the constructor
this.NavigationItem.HidesBackButton = false;
base.ViewDidAppear (animated);
}
这似乎导致了这个问题。奇怪的是,在iOS 7之前,它正在运行。经过一番研究后,我找到了这个帖子:http://forums.xamarin.com/discussion/8291/navigationcontroller-missing-back-button-when-coming-from-the-third-level-to-the-second-level
这为我提供了一个解决方案:
public override void ViewWillAppear (bool animated)
{
base.ViewWillAppear (animated);
NavigationItem.SetHidesBackButton (false, false);
}
public override void ViewWillDisappear (bool animated)
{
base.ViewWillDisappear (animated);
NavigationItem.SetHidesBackButton (true, false);
}
它仍然是一个黑客,但至少是一个工作: - )