在基于UINavigationController的iPhone应用程序中,我想以一种方法执行与按下后退按钮和返回视图相同的程序。
即自动按下“作业”按钮,如下所示:
我可以拨打普通的iOS电话吗,还是需要更多信息?
Answers:
UINavigationController
的-popViewControllerAnimated:
方法应做您想要的:
[navigationController popViewControllerAnimated:YES];
[self.navigationController popViewControllerAnimated:YES];
但是它什么也没做,但是在点击该按钮时会发出警告。
假设您实际上并不想以编程方式按下按钮,而只是复制按下按钮的结果,则应告诉导航控制器弹出当前视图控制器。
[self.navigationController popViewControllerAnimated:YES];
这会将其从堆栈中删除,并使您返回到以前的视图控制器。
斯威夫特3.0
返回根视图
self.navigationController?.popToRootViewController(animated: true)
返回上一个视图
self.navigationController?.popViewController(animated: true)
迅捷2.3
返回根视图
self.navigationController?.popToRootViewControllerAnimated(true)
返回上一个视图
self.navigationController?.popViewControllerAnimated(true)
[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];