1

我开始更频繁地使用故事板,但我遇到了问题。通常,当您使用 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% 正确的)。

既然我正在使用情节提要,我并没有自己实例化视图控制器,那么我该如何传递数据呢?谢谢!

4

1 回答 1

12

使用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];
于 2013-07-21T01:31:01.923 回答