我有3个视图叫做A,B和C.它们之间的区别是“模态地存在”。 dismissViewControllerAnimated
可以用来跳回到父视图控制器,但它有没有办法直接从C跳转到A?
答案 0 :(得分:1)
如果您使用的是故事板,则可以使用展开segue 来备份视图控制器层次结构中的多个步骤。
edit1: function() {
this.$el.addClass("editing");
this.$("input").eq(0).focus();
},
....
edit5: function() {
this.$el.addClass("editing");
this.$("label.todo-job").eq(4).focus();
}
形式的视图控制器A上定义方法。它需要以segue作为参数,而不仅仅是任何- (IBAction)unwind:(UIStoryboardSegue *)segue
发件人。通过遍历父级并呈现视图控制器层次结构来展开工作,直到找到实现所选方法的控制器。您不必在此方法中添加任何代码;只是让它与空体存在就足够了。一旦故事板找到这样的方法,它将弹出并关闭视图控制器,直到它显示实现该方法的那个。
答案 1 :(得分:1)
如果你想直接跳转到A和A你是rootViewcontroller然后你可以在你的C控制器中使用这个代码
self.navigationController?.popToRootViewControllerAnimated(true)
但是如果你想将某个数据从C控制器传递给A控制器,那么你必须使用Segue 这些都在navigationController类中提到 请参阅:https://developer.apple.com/library/ios/documentation/WindowsViews/Conceptual/ViewControllerCatalog/Chapters/NavigationControllers.html
答案 2 :(得分:1)
使用Push和Pop ViewControllers的导航堆栈,如果你需要提交和解除viewController,你可以尝试UIAnimation with Navigation Push和Pop堆栈,
然后您可以使用以下代码轻松导航到Parent ViewController。
[self.navigationController popToViewController:self.navigationController.viewControllers [self.navigationController.viewControllers.count - 3] animated:YES];
希望,这可能会对你有所帮助。 !!!!!
答案 3 :(得分:0)
目标 - C
UIViewController *prevVC = [self.navigationController.viewControllers objectAtIndex:IndexViewOfA];
//you get index of view (A,B,C) from array self.navigationController.viewControllers
[self.navigationController popToViewController:prevVC animated:YES];
这可能对您有所帮助:)。