应该如何创建 UINavigation 工具栏子视图项 Interface Builder?

Posted

技术标签:

【中文标题】应该如何创建 UINavigation 工具栏子视图项 Interface Builder?【英文标题】:How should one create UINavigation toolbar subview items Interface Builder? 【发布时间】:2012-03-06 06:40:49 【问题描述】:

This blog post 提出了我的一个问题:如何在 Interface Builder 中直观地管理工具栏项?当然可以将this technique 用于***视图,但是其他视图呢?我有没有办法让我的设计合作伙伴能够直接在这样的视图中编辑工具栏项,而无需创建一个从未实际使用过的占位符 UIToolbar?

【问题讨论】:

【参考方案1】:

这就是我的做法。我将此属性添加到我的控制器@interface

@property (nonatomic, strong) IBOutletCollection(UIBarButtonItem) NSArray *toolbarItems;

@implementation,我补充说:

@synthesize toolbarItems;

然后,在笔尖中,我将所有UIBarButtonItems 放在UIToolbar 中。在“对象”导航器中,我将它们全部选中,然后将它们移出 UIToolbar,这样它们就看不到它们所属的视图。然后,对于每一个,我右键单击并将“新引用插座集合”旁边的圆圈拖到“文件所有者”,并在结果弹出窗口中选择toolbarItems。而现在,所有的 UIBarButtonItem 都神奇地出现在 UIToolbar 中,无需再做任何工作。

唉,这并不理想。现在UIBarButtonItems 不在笔尖中的UIToolbar 中,它们是完全不可见的界面构建器。它们仍在“对象”导航器中,但实际上无法看到它们的样子。这似乎是一个不幸的错误(归档为rdar://11234043)。

据我所知,另一个问题是无法查看IBOutletCollection 中项目的顺序。我按照我希望它们显示的顺序添加它们,从右到左,但如果我需要更改顺序或在中间某处添加新的,它将是一个 PITA。

希望 Apple 为界面生成器添加更好的 IBOutletCollection 支持,并带有某种可见的容器。

【讨论】:

在 XCode 4.6.3 中出现错误:属性 'toolbarItems' 试图使用在超类 'UIViewController' 中声明的实例变量 '_toolbarItems'

以上是关于应该如何创建 UINavigation 工具栏子视图项 Interface Builder?的主要内容,如果未能解决你的问题,请参考以下文章

他们是怎么做到的?带有透明工具栏的 UINavigation

用 UIToolbar 替换 UINavigation?

iOS开发 OC 导航栏 UINavigationController 工具条 UIToolBar

呈现页面时出现 UiNavigation 错误

UINavigation 控制器上的完成按钮没有导航回来

如何在 UINavigation 中显示 UISearchBar?