对不起,我的英语不好

我需要将数据从我的First View Controller传递到SWRevealViewController的Front View Controller

在我的First View Controller中,我执行此代码

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"menu"]) {
        SWRevealViewController *sw = (SWRevealViewController *) segue.destinationViewController;

        // error is here i get nav with nil
        UINavigationController *nav = (UINavigationController *)sw.frontViewController;
        FrontViewController *home = (FrontViewController *) nav.topViewController;
        home.passed_student = selected_student;



}
}

最佳答案

在storyBord中,不会创建任何对象(视图控制器),直到使用segue呈现它或以其他方式访问它为止,因此在这里的代码中,您将呈现SWRevealViewController,但尝试访问不在内存中的FrontViewController对象。

因此,首先您应该将selected_student传递给SWRevealViewController,然后再从此处传递给FrontViewController,因为在使用segue展示FrontViewController的对象时,您可以从此处访问FrontViewController的对象。这是最简单的方法。

09-25 20:00