将数据从FirstViewController传递到SWRevealViewController的FrontViewController

时间:2014-09-23 07:25:04

标签: ios objective-c parameter-passing swrevealviewcontroller

抱歉我的英文不好

我需要将数据从我的第一视图控制器传递到SWRevealViewController的前视图控制器

在我的第一个视图控制器中,我执行此代码

- (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;



}
}

enter image description here

1 个答案:

答案 0 :(得分:2)

在storyBord中没有对象(视图控制器)被创建,直到它使用segue呈现或以其他方式访问,所以在你的代码中你呈现SWRevealViewController但是尝试访问不在内存中的FrontViewController对象。

首先,你应该将你的selected_student传递给你的SWRevealViewController,然后从这里传递给FrontViewController,因为你可以在使用segue呈现它时从这里访问FrontViewController的对象。这是最简单的方法。