2016-06-09 27 views
0

我有以下代碼來推送新的ViewControllers。彈出到iOS上的特定控制器Objective-c

- (IBAction)btnEditPressed:(id)sender { 
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"contactListViewController"]; 
    [self parentShowViewController:controller sender:sender]; 
} 

- (void)parentShowViewController:(UIViewController *)controller sender:(id)sender { 
    if ([self isIOS7]) { 
     // En iOS7 no existe el método showViewController 
     [self.navigationController pushViewController:controller animated:YES]; 
    } else { 
     //[self.navigationController pushViewController:controller animated:YES]; 
     [super showViewController:controller sender:sender]; 
    } 
} 

現在我有以下情況:我有3個ViewControllers稱爲A,B,C。

A-> B-> C如果按後退按鈕我想從C到回

回答

4

如果你想要去控制器A從控制器C對控制器C嘗試是這樣的

創建自定義後退按鈕並設置它的動作,並輸入以下代碼。

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES]; 

只有當您知道控制器A是您在導航中的第一個控制器時,這才起作用。

如果你不知道的viewController的順序嘗試這一個

for (UIViewController *vc in self.navigationController.viewControllers) { 
     if ([vc isKindOfClass:[ViewControllerA class]]) { 
      [self.navigationController popToViewController:VC animated:Yes]; 
     } 
    } 

,並添加自定義按鈕去這個link

希望這會幫助你。

+0

如果您不知道如何在導航欄中添加自定義按鈕,請告訴我。 –