2014-09-26 129 views
0

我有3個視圖控制器:A,B和C.A是初始的,它有2個按鈕:一個重定向到B,第二個到C.當B被按下時,按鈕內B被按下的用戶被重定向到C.現在在C中的導航欄上,當我按下後退按鈕時,我想總是將其重定向到A,並且從不到B.這是可能的嗎?導航欄後退按鈕更改功能

這是基本的功能我想實現:

一)

A->B->C  C back to A 

B)

A->C   C back to A 

回答

0
for (UIViewController *controller in self.navigationController.viewControllers) 
{ 
    if ([controller isKindOfClass:[A class]]) 
    { 
     [self.navigationController popToViewController:controller 
               animated:YES]; 
     break; 
    } 
} 
+0

這是我需要的答案。非常感謝。 – AleksandarNS 2014-09-26 11:43:17

0

的唯一途徑是通過自定義按鈕替換後退按鈕。

+0

你能詳細點嗎?演示如何做到這一點,提供一個樣本,一種使用方法? – Cyrille 2014-09-26 11:05:43

0

你可以通過presentview控制器來實現這一點作爲模式view.first從一個如果第一個按鈕被按下存在b view.if secnd按鈕被按下存在c視圖和在c視圖控制器放回按鈕並添加委託並實現委託在視圖控制器中,你必須在視圖控制器中關閉一個視圖。

0

讀你說的話之後,我想你的意思是實現自定義操作每個button.The方式,我會做(斯威夫特)是這樣的:

@IBAction func pressButton(sender : UIButton){ 

var SecondView :ViewController2 
SecondView = self.storyboard?.instantiateViewControllerWithIdentifier("SecondView") as ViewController2 
self.presentViewController(SecondView, animated: true, completion:nil) 
self.viewWillDisappear(true) 
} 

這個方法我用了很多,我知道有使用塞格斯另一種方式,但你仍然可以使用@ IBActions.You只需要創建一個新的賽格瑞(標識)和prepareforSegue方法,你說當賽格瑞被觸發

0

個究竟通過更換後退按鈕

UIBarButtonItem *btnBack = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(clkBack)]; 
    self.navigationItem.leftBarButtonItem = btnBack; 

    - (void)clkBack{ 
     //your view controllers 
    } 
試試這個