iOS使用故事板推送视图控制器时传递数据

Jon*_*son 1 storyboard uiviewcontroller uinavigationcontroller pushviewcontroller ios

我开始更频繁地使用故事板,但我遇到了一个问题.通常当您使用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];
Run Code Online (Sandbox Code Playgroud)

(我做了上面的内存代码,所以它可能不是100%正确).

既然我正在使用storyboard,我自己也没有实例化视图控制器,那么如何用它传递数据呢?谢谢!

Ste*_*arp 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];
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您的目标视图控制器是a UINavigationController,请使用以下命令:

UINavigationController * navigationController = segue.destinationViewController;
UIViewController * vc = [navigationController.viewControllers objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

  • @Inbl你可能最好问一个新问题并包含你的代码.看起来您的问题与此问题不同,如果我能看到您的代码,它会更容易找出出错的地方. (2认同)