我有一个这样的故事板:
- Navigation Controller --- 连接到 ---> View A ---> table cell segue ---> View B
- 独立视图 C,也就是说,故事板中的任何其他视图都没有连接到它的 segue。
我点击视图 A 中的一个单元格,它会自动执行与视图 B 的 segue。在视图 B 中,显示视图并触发应用程序事件后,它会自动关闭自身并推送视图 C 的实例,执行如下操作:
视图 B:
- (void)someEvent
{
ViewCController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewC"];
[self.navigationController pushViewController:controller animated:YES];
}
这一切都很好,视图 C 突然出现。但是,当我点击视图 C 导航栏上的“返回”按钮时,我希望它一直弹回视图 A,而不是视图 B。我试过这个:
视图 C:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController popToRootViewControllerAnimated:animated];
}
这几乎可以按预期工作,因为视图 C 被关闭,视图 A 绕过视图 B 重新返回。问题是,视图 A 中的导航栏仍然认为它更深一层,因为它仍然显示“返回”按钮而不是查看 A。我必须再次点击“返回”按钮才能显示正确的按钮。
我错过了什么?