繁体   English   中英

检测用于backButton的视图层次结构的正确方法是什么?

[英]What's the correct way to detect view hierarchy for backButton purposes?

这个问题适用于我正在对MBPlacePickerController进行的更新。

我正在构建一个自定义视图控制器,有时会以模态方式在其自己的UINavigationController显示,有时将其推送到现有的导航控制器堆栈上。

如果以模态显示我的视图控制器,我想显示自己的“完成”按钮,而不是在右侧显示后退按钮,在左侧显示第二个按钮。

如果视图控制器显示在导航堆栈上,则我想显示默认的后退按钮,然后再在右边显示另一个按钮。

我正在尝试找出检测视图控制器层次结构的最佳方法,但是也许做到这一点的“正确”方法是检查以前的视图控制器本身的后退按钮,然后适当地设置navigationItem。

谁能阐明一些想法?

编辑:

为了清楚起见,我正在对GitHub上的MBPlacePickerController库进行更新。 我使用导航控制器来显示“自动”和“完成”按钮,因此我一直想要导航控制器。 唯一的问题是,地点选择器控制器是否正在提供导航控制器(在这种情况下将以模态显示),或者是否将地点选择器推到另一个导航控制器上。

问题是如何显示后退按钮。 我是使用完成按钮还是内置的后退按钮? 我正在尝试找出检测此问题的最佳方法。

本质上,如果我尝试将地点选择器推到现有的导航控制器层次结构上,则不希望显示完成按钮。 如果我出现在新的视图控制器中,则需要显示自己的完成按钮。

另外,如果我有完成按钮,我将需要检测正确的方法来关闭视图控制器。 (这很简单,因为我可以假设如果“完成”按钮在那里,那么我们就不会使用“后退”按钮,而我可以关闭模​​态显示的导航控制器。)

如果您(有问题的视图控制器)在导航层次结构中,则您将拥有一个非null navigationController 如果您是模态展示,那么您可以使用一个非零的presentingViewController 因此,您知道自己所在的位置,并且可以相应地修改界面。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM