iphone - 以编程方式呼叫导航控制器后退按钮

问题描述:

在基于UINavigationController的iPhone应用程序中,我想在一个方法中执行按下后退按钮并返回视图的编程等效物。因为在这里看到iphone - 以编程方式呼叫导航控制器后退按钮

即自动按作业按钮:

Navigation Controller image

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

UINavigationController-popViewControllerAnimated:方法相反应该做你想要什么:

[navigationController popViewControllerAnimated:YES]; 
+12

真棒,感谢史蒂夫和尼尔斯。我使用的解决方案是\t \t [self.navigationController popViewControllerAnimated:YES]; 简单;) – oberbaum 2010-01-21 08:54:19

+0

这工作很好,除了在uitabbar上添加viewcontrollers。任何线索? – virata 2012-01-05 11:40:44

+1

我添加了'[self.navigationController popViewControllerAnimated:YES];'但它什么都没做,但是在贴上正在工作的按钮时有一个提醒。 – 2013-07-16 11:23:54

你应该叫

popViewControllerAnimated:

这是添加视图控制器与pushViewController:animated:

假设你实际上并不想按程序按钮,但si mply复制按下按钮的结果,你应该告诉导航控制器弹出当前视图控制器。

[self.navigationController popViewControllerAnimated:YES];

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

[self.navigationController popViewControllerAnimates:YES]; 

是最好的选择,但如果你也不在同一个视图控制器类或者叫那么你的后退按钮方法之前,你委托的变化也可以try--

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

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

[[self navigationItem] setBackBarButtonItem: newBackButton]; 

[newBackButton release]; 

,然后在backButtonTapped方法,你可以call--

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

夫特3.0

回到根视图

self.navigationController?.popToRootViewController(animated: true) 

回到前一视图

self.navigationController?.popViewController(animated: true) 

夫特2。3

回到根视图

self.navigationController?.popToRootViewControllerAnimated(true) 

回到以前的观点

self.navigationController?.popViewControllerAnimated(true) 
+0

不错的答案,我正在寻找它 – 2016-01-22 14:01:33

+0

谢谢!快乐它帮助.. – 2016-01-22 14:02:33