在iOS上以编程方式调用导航控制器后退按钮

时间:2010-01-21 08:44:09

标签: ios objective-c button uinavigationcontroller

在一个基于UINavigationController的iPhone应用程序中,在一个方法中,我想执行相当于后退按钮的程序化等效操作并返回视图。

即。自动按下“作业”按钮,如下所示:

Navigation Controller image

我可以进行通用的iOS通话,还是需要更多信息?

5 个答案:

答案 0 :(得分:188)

UINavigationController的{​​{3}}方法可以做你想做的事情:

[navigationController popViewControllerAnimated:YES];

答案 1 :(得分:24)

假设您实际上并不想以编程方式按下按钮,而只是复制按下按钮的结果,您应该告诉导航控制器弹出当前视图控制器。

[self.navigationController popViewControllerAnimated:YES];

这会将其从堆栈中删除,然后返回上一个视图控制器。

答案 2 :(得分:21)

Swift 3.0

  

返回根视图

self.navigationController?.popToRootViewController(animated: true)
  

返回上一个视图

self.navigationController?.popViewController(animated: true)

Swift 2.3

  

返回根视图

self.navigationController?.popToRootViewControllerAnimated(true)
  

返回上一个视图

self.navigationController?.popViewControllerAnimated(true)

答案 3 :(得分:7)

你应该致电

popViewControllerAnimated:

与使用pushViewController:animated:

添加视图控制器相反

答案 4 :(得分:6)

[self.navigationController popViewControllerAnimates:YES];

是最好的选择,但如果您在同一个视图控制器类或您的委托更改之前调用了后退按钮方法,那么您也可以尝试 -

首先你必须定义后退按钮---

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];