我有几个视图控制器嵌入在导航控制器中的故事板。
由于后续视图中的导航逻辑,返回按钮(在导航栏左上角)不会返回到第一个视图。我想知道在哪里以及如何仅更改第二个视图的“返回”按钮行为。欢迎任何想法和示例。
viewWillDisappear
中检查当前视图控制器是否仍在导航堆栈中,然后再调用super.viewWillDisappear()
。如果不在,则返回按钮已被按下。然后您可以执行popToRootViewControllerAnimated
。override func viewWillDisappear(animated: Bool) {
if (navigationController?.viewControllers)!.contains(self) {
// back button was pressed
self.navigationController?.popToRootViewControllerAnimated(animated)
}
super.viewWillDisappear(animated)
}
self.navigationController?.popToRootViewControllerAnimated(true)
//如果你不想它动画化,只需将true更改为false。
希望这能帮到你(如果你还没有找到答案的话)。干杯!
[self.navigationController popToRootViewControllerAnimated:YES]
[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Back" style:(UIBarButtonItemStylePlain) target:self action:@selector(backToVC1)]];
然后,在VC2中始终如一:
- (void)backToVC1
{
[self.navigationController popToRootViewControllerAnimated:YES];
}