从根视图控制器传递NSMutableArray到推送的视图控制器

时间:2014-02-06 13:03:16

标签: ios objective-c uinavigationcontroller nsmutablearray

我有2个视图控制器,第1个是uinavigationcontroller的根。 在该视图控制器(第一个)中,我有一个包含我创建的自定义类的nsmutable数组。到目前为止很好:)。

现在在第二个视图控制器(第一个的子节点)中有另一个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

我做错了什么?

感谢所有帮助者:)

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

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

应该有所帮助。