我是iOS应用开发的新手。
我现在有几个视图,如下图所示(不完全是这种情况),我可以通过第一个视图中的2个后续segue到达第三个视图(最右边)。
编辑:补充信息: 第三个视图实际上链接到第二个视图中的容器。它是从第一个到第二个的模态segue。
在第三个视图中,我有一个按钮,可以通过dismissViewControllerAnimated:completion:
方法将我带回第一个视图。但是我怎么能把一些数据传回第一个视图呢?
我只知道如何使用prepareForSegue:sender:
之类的方法在相邻视图之间传递数据。但是,我不确定如何在多个视图中执行此操作。
我应该使用Delegates
还是Singleton
还是有其他更好的选择?
提前谢谢。
答案 0 :(得分:1)
有以下方法可以做到这一点。
答案 1 :(得分:0)
假设您要传输一些字符串。您可以传递这样的数据:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
ViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"vc"];
controller.string = "some string";
[self presentViewController:controller animated:YES completion:nil];
如果您想要回到上一个视图控制器,那么您可以使用完成处理程序:
ViewController *vc = (ViewController*)self.presentingViewController;
[self dismissViewControllerAnimated:YES completion:^{
vc.string = @"some string";
}];
答案 2 :(得分:0)
请参阅此问题的正确答案:
Passing Data between View Controllers
这个问题经常被问到,记住你也可以使用第三个到第一个viewController的Unwind segue并使用:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"passDataFromThirdToFirst"]) {
//Pass the data here with the methods that suggest
//in the correct answer I've linked you.
} }