TabBar应用程序中的ABPeoplePickerNavigationController

时间:2011-06-20 07:28:42

标签: iphone uinavigationcontroller uitabbarcontroller abpersonviewcontroller

我正在构建一个看起来就像Apple的Dialer应用程序的iPhone应用程序。 问题是我有一些问题。 Apple的控制器非常难以使用,并且遇到很多问题,也许有人可以帮助我吗?

我有一个TabBar应用程序,并且在标签的一个中我创建了一个ABPeoplePickerNavigationController。 我允许用户删除和编辑联系人,但我有2个问题: 1)当我按下编辑 - >删除联系人我从底部弹出一个操作表,但是TabBar上方的“取消”按钮部分,我不能按它。只有当我按下它的顶部时,取消按钮才会触摸,其下面的TabBar不会在顶部。 (即使我看到了所有事情的动作表)。

2)例如,当用户编辑联系人姓名然后按“返回”按钮时,此人的姓名将不会更改为联系人列表中的新姓名。

我的架构是: 我在tabBar按钮的VC的“视图确实出现”中创建了ABPeoplePickerNavigationController。 对于添加新人我制作一个新的控制器并说:self modalviewcontroller:newPerson,所以当我按完或取消“ViewDidAppear”再次被调用,这就是为什么我可以在联系人中看到新人。 但是对于编辑联系我使用pushviewcontroller:person,所以当视图弹出时它不会调用viewDidAppear函数。

我该怎么办? 谢谢!

1 个答案:

答案 0 :(得分:0)

要解决第一个问题,您必须更改操作表的显示方式。您可以使用以下内容从标签栏中显示它:

[actionSheet showFromTabBar:self.tabBarController.tabBar];

甚至更好地让它显示在Windows的视图中

[actionSheet showInView:[[[UIApplication sharedApplication] delegate] window]];

要解决第二个问题,您必须确保在点击“返回”按钮之前正确编辑字段。实际上,如果您在回到上一页之前聚焦文本字段并且不重新签名,则不会触发您处理的事件来保存数据。您可以尝试使用viewWillDisappear:方法处理这些情况。