这个问题适用于我正在对MBPlacePickerController
进行的更新。
我正在构建一个自定义视图控制器,它有时会以自己的UINavigationController
模式显示,有时会推送到现有的导航控制器堆栈上。
如果我的视图控制器以模式显示,我想在右边显示我自己的"完成"按钮,而不是后退按钮,在左边显示第二个按钮。
如果视图控制器显示在导航堆栈上,我希望显示默认的后退按钮,然后在右侧显示另一个按钮。
我正试图找出检测视图控制器层次结构的最佳方法,但也许"正确"的方法是检查上一个视图控制器本身的后退按钮,然后适当地设置导航项。
有人能透露一些信息吗?
编辑:
为了清楚起见,我正在对GitHub上的MBPlacePickerController
库进行更新。我使用导航控制器来显示"自动"one_answers"完成"按钮,所以我总是想要一个导航控制器。唯一的问题是位置选择器控制器是否提供导航控制器(在这种情况下将以模式显示),或者位置选择器是否被推到另一个导航控制器上。
问题是如何显示后退按钮。我是使用完成按钮,还是使用内置的后退按钮?我正试图找出检测这种情况的最佳方法。
从本质上讲,如果我试图将位置选择器推到现有的导航控制器层次结构上,我不希望显示完成按钮。如果我出现在一个新的视图控制器中,我需要显示我自己的完成按钮。
此外,如果我有done按钮,我需要检测关闭视图控制器的正确方法。(这更简单,因为我可以假设,如果完成按钮在那里,我们就不使用后退按钮,我可以取消模式显示的导航控制器。)
如果您(有问题的视图控制器)位于导航层次结构中,则具有非零navigationController
。如果你被模式化地呈现,你就有一个非零presentingViewController
。这样,您就知道自己所在的位置,并且可以相应地修改您的界面。