此问题适用于我对MBPlacePickerController
进行的更新。为backButton目的检测视图层次结构的正确方法是什么?
我正在构建自定义视图控制器,有时会在其自己的UINavigationController
中以模态方式显示,而其他时间会推送到现有的导航控制器堆栈上。
如果我的视图控制器以模态方式呈现,我想显示自己的“完成”按钮,而不是右侧的后退按钮和左侧的第二个按钮。
如果视图控制器显示在导航堆栈上,我想显示默认的后退按钮,然后我想要显示右侧的其他按钮。
我试图找出检测视图控制器层次结构的最佳方法,但也许“正确”的方法是检查前一个视图控制器本身的后退按钮,然后适当地设置navigationItem 。
任何人都可以点亮一下吗?
编辑:
为清楚起见,我正在更新我的MBPlacePickerController
库,它是在GitHub上。我使用导航控制器来显示“自动”和“完成”按钮,所以我总是需要一个导航控制器。唯一的问题是如果地方选择器控制器提供导航控制器(在这种情况下将以模态方式显示),或者如果地方选择器被推入另一个导航控制器。
问题是如何呈现后退按钮。我是否使用完成按钮或使用内置的后退按钮?我试图找出检测这个问题的最佳方法。基本上,如果我尝试将位置选取器推到现有的导航控制器层次结构上,我不想显示完成按钮。如果我在一个新的视图控制器中,我需要显示我自己完成的按钮。
另外,我需要检测正确的方法来解除我的视图控制器,如果我有完成按钮。 (这很简单,因为我可以假设,如果完成按钮在那里,我们不使用后退按钮,并且我可以关闭模态呈现的导航控制器。)
你可以在模态上引入你的自定义视图控制器(不在导航控制器堆栈中),然后让你的“完成”按钮简单地关闭当前的视图控制器?然后您将返回到您来自的前一个视图控制器(和导航控制器堆栈)。 –
是什么问你如何确定你的ViewController被推送或模态显示!?我对“在其自己的UINavigationController模块中显示”部分感到困惑,是已经工作或想要实现的东西? – luk2302
为了清晰起见进行了编辑。 – Moshe