当应用程序不是从主详细信息模板制作时,是否可以使用 segue 在 Objective-C 中的情节提要之间传递数据?
我见过的唯一示例是具有主详细信息视图的示例。
当应用程序不是从主详细信息模板制作时,是否可以使用 segue 在 Objective-C 中的情节提要之间传递数据?
我见过的唯一示例是具有主详细信息视图的示例。
是的。你可以实现 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];