iOS 在使用情节提要推送视图控制器时传递数据
Posted
技术标签:
【中文标题】iOS 在使用情节提要推送视图控制器时传递数据【英文标题】:iOS pass data when using storyboard to push the view controller 【发布时间】:2013-07-21 01:22:29 【问题描述】:我开始更频繁地使用故事板,但我遇到了问题。通常,当您使用 UINavigationController 推送视图控制器时,您可以通过以下方式执行此操作,并且您可以随之传递数据:
UIViewController *vc = [[UIViewController alloc] init];
vc.link = [self link];
vc.name = [self name];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]
[nav presentViewController:vc completion:nil animated:YES];
(我为内存做了上面的代码,所以它可能不是 100% 正确的)。
现在我正在使用情节提要,我并没有自己实例化视图控制器,那么我该如何传递数据呢?谢谢!
【问题讨论】:
【参考方案1】:使用prepareForSegue:sender:
方法。
例如:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
if ([segue.identifier isEqualToString:@"SegueID"])
UIViewController * vc = segue.destinationViewController;
vc.link = [self link];
vc.name = [self name];
或者,如果您的目标视图控制器是 UINavigationController
,请使用:
UINavigationController * navigationController = segue.destinationViewController;
UIViewController * vc = [navigationController.viewControllers objectAtIndex:0];
【讨论】:
谢谢!这正是我一直在寻找的!谢谢。 如上...非常感谢您的回答,非常有帮助! 我现在遇到了类似的问题,但我不知道如何找到 segue 标识符。我的 ViewController 在调用[self.navigationController pushViewController:vc animated:YES];
后被调出我没有在情节提要中进行 segue,所以我不知道使用什么标识符来发送数据。
糟糕,忘记标记你了,@StephSharp
@Inbl 您最好提出一个新问题并包含您的代码。您的问题似乎与此不同,如果我能看到您的代码,就会更容易找出问题所在。以上是关于iOS 在使用情节提要推送视图控制器时传递数据的主要内容,如果未能解决你的问题,请参考以下文章