2016-01-23 64 views
0

我處於一個奇怪的狀況和iOS開發的一點點新手。爲了清晰起見,使用ViewController(vA)的字母表和NavigationController(n1)的數字。假設我有一個嵌入導航控制器'1'的ViewController'A'。下面我試圖展示導航。
VB-> N1 - > vA型
VB-> N2 - > VC - > VD - > vA型
我有vB其重定向我vA一個欄按鈕項目。由於某些要求,我使用目前的模式繼續從vB到'vA',因此vA上沒有任何後退按鈕,而對於第二種情況,由於push segue,我獲得了默認後退按鈕。在第一種情況下,爲了導航回來,我添加了一個欄按鈕項目,並關閉按鈕操作上的視圖,如下所示。如何創建基於前一個ViewController的導航欄後退按鈕

[self dismissViewControllerAnimated:YES completion:^{ NSLog(@"controller dismissed"); }]; 

其工作罰款的首要條件,但第二個條件導航,當談到對vA我得到了我的自定義後退按鈕而不是默認的後退按鈕,這是顯而易見的,通過點擊它,我得到了redirected to vB而我的要求是go back on vD。那麼我該如何做到這一點,如果coming from vD隱藏自定義後退按鈕。我正在考慮的解決方案是獲取以前的ViewController,並基於該創建自定義按鈕。但我不確定,這是一個正確的方法。請指導我是否有其他簡單的方法來做到這一點。

- (void)viewDidLoad { 
if(viewController isEqualTo @" vB") 
{ 
//create custom back bar button 

} 

} 

回答

0

兩個想法 - 首先,你可以繼承vA。 vASubclass創建自定義後退按鈕並調用-dismissViewController。 (super)vA就是你在棧上推送的內容。

或者,在vB的-prepareForSegue中,檢查segue標識符,如果modal將自定義按鈕添加到vA,並設置target-action從vB中調用-dismissViewController。

+0

使用第二種方法,下次嘗試第一種方法並更新。 –

相關問題