是否每个具有“编辑”或“完成”按钮的视图都​​需要位于 UINavigationController 中?

Posted

技术标签:

【中文标题】是否每个具有“编辑”或“完成”按钮的视图都​​需要位于 UINavigationController 中?【英文标题】:Does every view that has an 'Edit' or 'Done' button needs to be inside an UINavigationController? 【发布时间】:2011-01-26 16:24:24 【问题描述】:

只是想知道这是否有意义。

我在某处读到,Apple 将真正需要它的视图的导航栏和导航控制器的良好用途归类为从当前页面转到另一个页面等。

但在某些情况下,(大部分情况,至少对我而言)是我不会在我的视图上使用 UINavigationController 的所有复杂结构,有时它们根本没有任何导航,只是和顶部的“编辑”按钮或“完成”按钮...

所以我的问题是?

真的有必要为这些按钮创建一个导航控制器吗? 或者我可以简单地在一个普通的 UIView 上“模拟”栏的外观和感觉并将一些按钮拖到那里?

谢谢

【问题讨论】:

【参考方案1】:

您可以在视图中使用 UINavigationBar 而无需使用导航控制器 - 在 IB 的组件库中提供 UINavigationBar 和栏按钮,因此您可以将它们拖放到视图中,与它们建立插座连接等。所以你不要甚至不需要模拟酒吧 - 标准的酒吧是为您的目的而存在的

【讨论】:

太好了,谢谢弗拉基米尔。唯一的问题是,当它未链接到“UINavigationController”时,我似乎无法访问“viewController.navigationBar”或通过代码设置导航栏的标题:(任何线索? navigationBar 包含一个或多个导航项 - 您必须设置项目的标题,而不是栏的标题。如果您在 IB 中创建视图,则直接在控制器中为 navigationItem 创建插座并设置其标题【参考方案2】:

没有。应用商店中有很多经过批准的应用,它们在自定义视图(包括在 Open GL 层中或之上等)中具有自定义完成或编辑按钮,而没有任何 UINavigation 控制器。只是不要试图将用户与其外观与功能混淆。

【讨论】:

以上是关于是否每个具有“编辑”或“完成”按钮的视图都​​需要位于 UINavigationController 中?的主要内容,如果未能解决你的问题,请参考以下文章

vue 表格数据编辑,点击取消或者完成按钮后,关闭编辑状态没有及时生效

iPhone,在表格视图中单击编辑/完成按钮的钩子

自定义分组表或按钮?

对于具有不同类型控件的单个视图,我是不是需要多个控制器?

我是不是需要在我的 iphone 应用程序中按下每个按钮时不断检查连接?

视图数组(具有 UIImage 和 3 个按钮的视图):是不是需要自定义视图/drawRect?