此問題適用於我對MBPlacePickerController
進行的更新。爲backButton目的檢測視圖層次結構的正確方法是什麼?
我正在構建自定義視圖控制器,有時會在其自己的UINavigationController
中以模態方式顯示,而其他時間會推送到現有的導航控制器堆棧上。
如果我的視圖控制器以模態方式呈現,我想顯示自己的「完成」按鈕,而不是右側的後退按鈕和左側的第二個按鈕。
如果視圖控制器顯示在導航堆棧上,我想顯示默認的後退按鈕,然後我想要顯示右側的其他按鈕。
我試圖找出檢測視圖控制器層次結構的最佳方法,但也許「正確」的方法是檢查前一個視圖控制器本身的後退按鈕,然後適當地設置navigationItem 。
任何人都可以點亮一下嗎?
編輯:
爲清楚起見,我正在更新我的MBPlacePickerController
庫,它是在GitHub上。我使用導航控制器來顯示「自動」和「完成」按鈕,所以我總是需要一個導航控制器。唯一的問題是如果地方選擇器控制器提供導航控制器(在這種情況下將以模態方式顯示),或者如果地方選擇器被推入另一個導航控制器。
問題是如何呈現後退按鈕。我是否使用完成按鈕或使用內置的後退按鈕?我試圖找出檢測這個問題的最佳方法。基本上,如果我嘗試將位置選取器推到現有的導航控制器層次結構上,我不想顯示完成按鈕。如果我在一個新的視圖控制器中,我需要顯示我自己完成的按鈕。
另外,我需要檢測正確的方法來解除我的視圖控制器,如果我有完成按鈕。 (這很簡單,因爲我可以假設,如果完成按鈕在那裏,我們不使用後退按鈕,並且我可以關閉模態呈現的導航控制器。)
你可以在模態上引入你的自定義視圖控制器(不在導航控制器堆棧中),然後讓你的「完成」按鈕簡單地關閉當前的視圖控制器?然後您將返回到您來自的前一個視圖控制器(和導航控制器堆棧)。 –
是什麼問你如何確定你的ViewController被推送或模態顯示!?我對「在其自己的UINavigationController模塊中顯示」部分感到困惑,是已經工作或想要實現的東西? – luk2302
爲了清晰起見進行了編輯。 – Moshe