2014-02-06 184 views
-1

我有2个视图控制器的第一个是uinavigationcontroller的根。 在该视图控制器(第一)我有nsmutable数组,包含我创建的自定义类。到现在为止还挺好 :)。从根视图控制器传递NSMutableArray到推视图控制器

现在在第二个视图控制器(第一个孩子)还有另一个nsmutable阵列 ,我想从第一个视图控制器(从根)传递给他的数组。

所以在该方法中:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 

我使用此代码:

if([segue.identifier isEqualToString:@"showDetailSegue"]){ 
     UINavigationController *navController = (UINavigationController *)segue.destinationViewController; 
     tableViewController *controller = (tableViewController *)navController.topViewController; 
     controller.monthnames = monthnames; 
    } 

但是当我运行该程序,并执行SEGUE我得到这个错误消息:

[tableViewController topViewController]: unrecognized selector sent to instance 0x9836f20 

我在做什么错了?

感谢所有佣工:)

+1

请搜索很多答案已经在这个论坛上 –

+0

是啊这就是我做了我最后2小时 –

回答

0

segue.destinationViewController已经是你的第二个视图控制器 (而不是导航控制器):

if([segue.identifier isEqualToString:@"showDetailSegue"]){ 
    tableViewController *controller = (tableViewController *)segue.destinationViewController; 
    controller.monthnames = monthnames; 
} 
+0

非常感谢它的工作:) –

0

我相信你SEGUE点表视图控制器不是导航控制器。将您的代码替换为:

if([segue.identifier isEqualToString:@"showDetailSegue"]){ 
     tableViewController *controller = (tableViewController *)segue.destinationViewController; 
     controller.monthnames = monthnames; 
    } 

它应该有所帮助。

相关问题