假设我有名为A,B,C,D的视图控制器。我正在使用push来自A - > B - > C.现在我想从C转到D,当我从D按回按钮时,它应该转到A.我怎么能这样做?有什么建议?
答案 0 :(得分:1)
如果你想要弹出到根(A),例如D - > A(直接)
self.navigationController?.popToRootViewControllerAnimated(true)
如果您想返回上一个视图控制器,例如:D - > C或c - > B或B到A
self.navigationController?.popViewControllerAnimated(true)
答案 1 :(得分:1)
您需要使用自定义按钮修改后退按钮,并添加一个操作,将您弹出到当前UINavigationController
内的 rootViewController 。 ( popToRootViewController 表示从导航堆栈中删除所有其他控制器并转到第一个控制器)
在你的最后一个viewController上放了这些行:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Go to root" style:UIBarButtonItemStylePlain target:self action:@selector(popToRootNavigationViewController:)];
}
- (void)popToRootNavigationViewController:(UIBarButtonItem *)button {
[self.navigationController popToRootViewControllerAnimated:YES];
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Go to root", style: UIBarButtonItemStyle.Plain, target: self, action: "popToRootNavigationViewController:")
}
func popToRootNavigationViewController(sender: UIBarButtonItem) {
self.navigationController?.popToRootViewControllerAnimated(true)
}
答案 2 :(得分:0)
使用UINavigationController
,您可以拨打popToRootViewControllerAnimated(_:)
,它会将您带回到您的第一个控制器。
因此,使用NavController,将A设置为root,将D设置为popToRootViewControllerAnimated(true)