我有viewcontroller A,点击按钮,我打开了另一个视图控制器,其演示样式为Form表格。在打开的第二个视图控制器中有两个按钮。现在,当单击这些按钮时,第二个视图控制器应该消失,下一个视图控制器应该在视图控制器A的顶部打开。但是当我在下面尝试时,另一个视图控制器在对话框内打开 我不知道如何放松这个segue并一起调用另一个场景。
答案 0 :(得分:0)
Nitya,您是否尝试使用以下代码来关闭当前视图控制器。在要关闭viewController的按钮的IBAction中使用它: -
self.dismissViewControllerAnimated(true, completion: nil)
答案 1 :(得分:0)
所以你有一个带有按钮的根视图控制器A.如果点击该按钮,其他视图控制器(我们将其命名为B)由A显示为表单。 B有两个按钮,如果你点击其中一个按钮,B应该被解雇, 之后一个不同的视图控制器(让我们说C)sh由A呈现。
Apple并不真正推荐这种工作流程,但是可以实现它。您可以考虑使用导航控制器或主控细节控制器来代替此。但是,如果你坚持你最初的想法,这里有一些可能的实现:
1。 如果您正在使用故事板并且B上的按钮触发了一个展开的segue到A,那么您可以将其添加到展开seque动作的末尾:
dispatch_async(dispatch_get_main_queue(), ^{
[self performSegueWithIdentifier:@"segueThatPresentsC" sender:nil];
});
2。 如果以编程方式显示viewcontrollers,则: 在从A中呈现B之前,您可以配置B的按钮,使得ist target为A,并且其操作是在A中定义的方法:
- (void) dismissAndPresentC {
[self dismissViewControllerAnimated:YES completion:^{
[self presentViewController:instanceOfC animated:YES completion:nil];
}];
}
这第二个可能是一个小小的黑客,但仍然是一个令人困惑的概念。