0

当应用程序不是从主详细信息模板制作时,是否可以使用 segue 在 Objective-C 中的情节提要之间传递数据?

我见过的唯一示例是具有主详细信息视图的示例。

4

1 回答 1

0

是的。你可以实现 prepareForSegue:sender: 在你正在从中进行的 viewController 中,如下所示:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"MySegue"]) {
        MyOtherViewController *destination = (MyOtherViewController *)segue.destinationViewController;
        destination.someProperty = self.someOtherProperty;
    }
}

这将在你的 segue 被执行之前被调用,给你一个进入你正在 segue 的 viewController 的钩子。

编辑:

我没有意识到您的 ViewControllers 在不同的 Storyboard 中。这个问题已经得到了很好的回答,在这里:https ://stackoverflow.com/a/9610972/1716763

不过,您实际上不会使用 segue,而是以编程方式执行操作,然后将第二个视图控制器推送到导航堆栈上,或者以模态方式呈现它。

我已经改编了@Inafziger 回答中的一些代码以适合您的示例:

UIStoryboard *secondStoryBoard = [UIStoryboard storyboardWithName:@"secondStoryBoard" bundle:nil];
MyOtherViewController *myViewController = (MyOtherViewController *)[secondStoryBoard instantiateViewControllerWithIdentifier:@"myOtherViewController"];

myViewController.someProperty = self.someOtherProperty;

[self.navigationController pushViewController:myViewController animated:YES];
于 2013-09-30T14:53:20.497 回答