iphone – 以编程方式调用导航控制器返回button

在一个基于UINavigationController的iPhone应用程序中,在一个方法中,我想执行后退button被按下并返回一个视图的编程等效。

即自动按下button,如下所示:

导航控制器图像

有我可以做一个通用的iOS调用,或者是需要更多的信息?

UINavigationControllerpopViewControllerAnimated:方法应该做你想做的事情:

 [navigationController popViewControllerAnimated:YES]; 

假设你实际上并不想按下编程button,而是简单地复制按下button的结果,你应该告诉导航控制器popup当前的视图控制器。

[self.navigationController popViewControllerAnimated:YES];

这将从堆栈中删除它,并返回到前一个视图控制器。

Swift 3.0

回到根视图

 self.navigationController?.popToRootViewController(animated: true) 

回到上一个视图

 self.navigationController?.popViewController(animated: true) 

Swift 2.3

回到根视图

 self.navigationController?.popToRootViewControllerAnimated(true) 

回到上一个视图

 self.navigationController?.popViewControllerAnimated(true) 

你应该打电话

popViewControllerAnimated:

这与使用pushViewController:animated:添加视图控制器相反pushViewController:animated:

 [self.navigationController popViewControllerAnimates:YES]; 

是最好的select,但如果你是不是在相同的视图控制器类或您的委托更改您的后退button方法之前,那么你也可以尝试 –

首先你必须定义后退button—

 UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle: @"anyTitleForBackButton" style: UIBarButtonItemStyleBordered target: nil action: @selector(backButtonTapped)]; [[self navigationItem] setBackBarButtonItem: newBackButton]; [newBackButton release]; 

然后在backButtonTapped方法中可以调用 –

 [self.navigationController pushViewController:desiredViewController animated:YES];