2014-02-06 5 views
-1

У меня есть 2 контроллера вида, первый 1 - корень uinavigationcontroller. в этом представлении контроллер (первый) у меня есть nsmutable массив, который содержит пользовательский класс, который я создал. Все идет нормально :).передать NSMutableArray от контроллера корневого представления до контроллера толкаемого представления

теперь во втором контроллере представления (дочерний элемент первого) есть еще один nmutable массив , и я хочу передать ему массив из первого контроллера представления (из корня).

так в методе:

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

yea thats what i did i последние 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; 
    } 

Это должно помочь.

Смежные вопросы

 Смежные вопросы