0

对不起我的英语不好从FirstViewController将数据传递到FrontViewController 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

UINavigationController * nav =(UINavigationController *)sw.frontViewController;这里你的frontViewController是SWRevealViewController的一个属性? – iHulk 2014-09-23 07:38:51

+0

是的,它不同于类叫做FronViewController – 2014-09-23 07:40:45

+1

我认为你的属性frontViewController是在SWRevealViewController内部初始化为UINavigationController之前使用的。 – iHulk 2014-09-23 07:44:26

回答

2

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

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

+0

我是新来的ios,所以我该怎么做 – 2014-09-23 07:53:05

+1

现在你正在从你的FirstViewConroller呈现SWRevealViewController的对象,并且你想将selected_student的数据提前一步传递给FrontViewController。为此,您需要FrontViewController的对象,可以通过在此StoryBoard中将此ID提供给此FrontViewController来访问,然后使用该ID在此处访问它。我会在几分钟内为您提供代码。 – iHulk 2014-09-23 07:59:57

+1

我已经更新了答案。如果它仍然无法正常工作,请告诉我。 – iHulk 2014-09-23 08:10:22

相关问题