我有四个 View Controller 类 A、B、C、D。
当从 A 类和 B 类按下“开始”按钮时,D 类被按下。
我在应用程序委托(delegate)中有一个方法可以为我做到这一点
-(void)showViewController {
self.ViewController = [[[ViewController alloc] initWithNibName:@"View" bundle:nil] autorelease];
[self.navigationController pushViewController:self.ViewController animated:YES];
}
当从 D 类按下“返回”按钮时,它会弹回 A 类和 B 类,具体取决于按下哪个类 D 类
- (void)popViewController {
[self.navigationController popViewControllerAnimated:YES];
}
我想要实现的是假设如果 A 类插入 D 类,但是当在 D 类中按下“后退”按钮时,我希望它转到 C 类而不是 A 类
我试图实现以下代码
-(void)popToViewController{
[self.navigationcontroller popToViewController:self.ClassCViewController animated:YES]
}
这会导致 B 类发生我不想要的变化。
有什么建议么 ?
最佳答案
所以我建议你花点时间阅读有关 delegates 的苹果文档。 .他们会在这里做你想要的,两个 View 可以有相同的 subview 。从那里让 subview 调用委托(delegate)来确定它需要做什么。
要记住的另一件事是,让任何 View 插入 View 也成为负责弹出该 View 的 View 是一种很好的做法。
编辑:只是为了帮助您解决原始问题并让您思考正确的道路。当在 D 类中按下后退按钮时。您希望它从那里调用委托(delegate)(可以是 A 类或 B 类)上的方法,您可以让它转到同一个类。或者,如果你想呈现另一个 View ,让委托(delegate) View 呈现 C 类。使用委托(delegate)允许你让 A 类呈现 C 类,同时允许 B 类在按下返回时停留在 B 上。我希望这回答了你的问题。
关于iphone - 如何弹出到不同的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14203045/