检测视图层次结构以用于后退按钮的正确方法是什么?



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

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

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

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

我正试图找出检测视图控制器层次结构的最佳方法,但也许"正确"的方法是检查上一个视图控制器本身的后退按钮,然后适当地设置导航项。

有人能透露一些信息吗?

编辑:

为了清楚起见,我正在对GitHub上的MBPlacePickerController库进行更新。我使用导航控制器来显示"自动"one_answers"完成"按钮,所以我总是想要一个导航控制器。唯一的问题是位置选择器控制器是否提供导航控制器(在这种情况下将以模式显示),或者位置选择器是否被推到另一个导航控制器上。

问题是如何显示后退按钮。我是使用完成按钮,还是使用内置的后退按钮?我正试图找出检测这种情况的最佳方法。

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

此外,如果我有done按钮,我需要检测关闭视图控制器的正确方法。(这更简单,因为我可以假设,如果完成按钮在那里,我们就不使用后退按钮,我可以取消模式显示的导航控制器。)

如果您(有问题的视图控制器)位于导航层次结构中,则具有非零navigationController。如果你被模式化地呈现,你就有一个非零presentingViewController。这样,您就知道自己所在的位置,并且可以相应地修改您的界面。

相关内容

最新更新