Cocoa touch 如何添加导航栏';s Done(完成)按钮到弹出框';什么是路过视图?

Cocoa touch 如何添加导航栏';s Done(完成)按钮到弹出框';什么是路过视图?,cocoa-touch,uinavigationbar,uipopovercontroller,Cocoa Touch,Uinavigationbar,Uipopovercontroller,我在一个iPad应用程序中工作,它有一个拆分视图,在细节视图中有一个导航控制器。导航堆栈中最深的视图是编辑视图,用户可以在其中编辑数据。我将编辑按钮作为RightBarButtonim,当编辑开始时,将其更改为done按钮 当编辑开始,用户触摸到一个特定的字段时,我会显示一个popoverview,其中包含一个可能的选项列表,这些选项根据用户键入的内容进行过滤,这是一种基于所有其他对象中该字段的所有值的自动填充形式 这很好,除非您尝试触摸“完成”按钮。爆米花吃了这种触感,便不屑一顾。因此,用户必

我在一个iPad应用程序中工作,它有一个拆分视图,在细节视图中有一个导航控制器。导航堆栈中最深的视图是编辑视图,用户可以在其中编辑数据。我将编辑按钮作为RightBarButtonim,当编辑开始时,将其更改为done按钮

当编辑开始,用户触摸到一个特定的字段时,我会显示一个popoverview,其中包含一个可能的选项列表,这些选项根据用户键入的内容进行过滤,这是一种基于所有其他对象中该字段的所有值的自动填充形式

这很好,除非您尝试触摸“完成”按钮。爆米花吃了这种触感,便不屑一顾。因此,用户必须再次触摸done

我尝试使用uipopovercontroller的passthroughViews属性,但是UIBarButtonItem不是一个视图,并且没有文档化的方法来获取“完成”按钮甚至导航栏的视图。我可以访问gdb中的变量,但不能通过KVC访问

有没有关于如何防止需要点击两次的想法


我曾考虑在窗口上安装一个手势识别器,但这看起来很混乱,我必须处理旋转问题。

如果有人从谷歌获得此信息,请从其他问题复制粘贴:

目前我找到的唯一解决方案是使用自定义UIButton创建UIBarButtonim

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
//code for styling button

UIBarButtonItem *b =  [[[UIBarButtonItem alloc]
                                         initWithCustomView:button]
                                         autorelease]
然后

popoverController.passthroughViews = [NSArray arrayWithObject:b.customView];

但是要做好准备-您不能创建看起来像UIBarButtoItem的UIButton。最后,我创建了一个重组了uibarbuttonite的图像。

如果有人从谷歌获得了这个图像,请从其他问题复制粘贴:

目前我找到的唯一解决方案是使用自定义UIButton创建UIBarButtonim

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
//code for styling button

UIBarButtonItem *b =  [[[UIBarButtonItem alloc]
                                         initWithCustomView:button]
                                         autorelease]
然后

popoverController.passthroughViews = [NSArray arrayWithObject:b.customView];
但是要做好准备-您不能创建看起来像UIBarButtoItem的UIButton。我最终创造了一幅重新组合了维吾尔布托人的形象