UIToolbar消失后解除模态视图控制器

问题描述:

我知道你们有些人可能不熟悉Monotouch,但这肯定是一个普通的iOS问题,而不是一个特定的Monotouch问题。UIToolbar消失后解除模态视图控制器

我重新创建具有类似功能的默认邮件应用程序:UITableview with UIToolbar at bottom

这是我们的应用程序的一个简单的娱乐。这是一个UIView其中包含一个UITableView和一个UIToolbar。它从一个XIB文件(包含附带的视图控制器代码)加载。这个视图是一个UITabController视图(尽管我确信这不应该影响事物?)。

alt text

这已经从使用导航控制器推

controller.PushViewController(inboxItem.Controller, true); 

(其中inboxItem是我做了一个自定义对象,控制器属性是所述inboxItem的视图控制器)。

按下工具栏上的右手按钮会呈现一种新的模式视图(撰写新消息) - 该功能会执行其任务,无论其被解散的方式如何,在解散后,UIToolbar消失。但是,如果我点击另一个选项卡,然后再次点击此选项卡,工具栏将重新出现。这是重绘问题吗?

我在做构造我的应用程序的方式做错了吗?或者我碰巧遇到了一些奇怪的iOS/Monotouch错误? (我希望是前者 - 所以我可以改进我的iOS开发)。

+0

是否有一个特别的原因,您手动添加工具栏,而不是使用navigationController的工具栏?同样奇怪的是,似乎是viewcontroller的XIB的所有者是tableView而不是viewcontroller。 – FelixLam 2010-09-29 08:56:22

+0

这是我缺乏iOS知识的地方。我修改了代码,以便使用navigationController的工具栏,我仍然遇到同样的问题。另外,“InboxTableView”是一个viewController的名称(推送该视图的前一个视图)。 – Luke 2010-09-29 09:02:25

我解决了这个问题。基本上,当ModalView被呈现然后被解散时,发生了什么事情,toolBar每次被移动了44个像素。

在我的示例中,toolBar位于UITabBar的上方,因此当模式视图被解除时,工具栏被移出视图。我不知道为什么会发生这种情况,但我一定会提交适当的错误报告。

一个快速和非常脏的方法是在显示模态视图时将toolBar上移44个像素,这样当它被解散时,它会将其移回到合适的位置。