如何在视图控制器导航中公开标准后退按钮?

时间:2016-10-13 13:22:33

标签: swift3

我需要用户能够导航数据层次结构(主级别,详细级别)并相应地创建新的主对象和详细对象。 master和detail都使用数组作为模型,TableViews表示

此导航流程使用2个导航和表控制器,如下所示。主人和详细信息的{+ TableViews创建新对象,forst TableCell使用segue导航到第二个TableView

Storyboard

虽然屏幕截图现在显示“完成”,即使删除ButtonItem广告位仍为空。

我想显示标准后退按钮:“< Middlewares”在这种情况下。在测试中,我只能在导航到正常ViewController时获得后退按钮,而不能导航到另一个NavigationController。它是否可以在Navigation Controllers之间进行?

2 个答案:

答案 0 :(得分:1)

控制导航栏按钮的外观

您可以通过打开文档大纲并找到现有的完成按钮来实现所需的行为。如果您有UIBarButtonItem类型,则只需在Inspector中将类型更改为Custom。接下来在UIBarButtonItem中添加一个常规按钮(只需将目标控制器的导航栏放入storyboard / xib的放大视图中)。这将允许您将按钮拖动到导航栏上。

有了标准按钮后,您可以使用后退箭头添加图像。然后添加支持代码以使用导航栏上的弹出行为。由于您只能有一个根导航控制器,因此您可能需要删除第二个UINavigationController并从对象库中添加UINavigationItem,然后添加所选的按钮,标题。此配置允许您利用所有可用的推送和弹出方法,同时保留对导航堆栈的外观/行为的完全控制。

有关自定义UINavigation Stack的外观/行为的更多信息,请访问:Navigation API Docs

答案 1 :(得分:1)

只需删除第二个导航控制器即可。如果您使用push segue,您的第二个视图控制器仍将具有导航栏。只要你不使用模态segue,所有被推动的视图控制器都会有一个导航栏。

所以你的故事板看起来像这样: Your storyboard

然后您将自动拥有一个后退按钮。如果您想更改它的文本,请转到第一个视图控制器的导航项并相应地更改后面的标题,如此屏幕截图所示

enter image description here

你当然希望在你的第二个视图控制器中有一个标题(类似于“添加[你要添加的任何内容]”。所以只需将UINavigationItem拖放到第二个视图控制器上,然后你也可以在“界面”构建器

中添加UIBarButton