2013-11-02 5 views
3

Я знаю, что есть много сообщений об этом, но я пробовал все, и ничего не сработало. Поэтому я попытался передать объект между двумя контроллерами представлений, в DBKIngredientsViewController, встроенный в элемент навигации. У меня есть push segue с идентификатором «showIngredientsSegue» в DBKIngredientsViewController. Сообщение об ошибке я получаю это:передавать данные для просмотра контроллера с помощью раскадровки segue iOS

'NSInvalidArgumentException', reason: '-[DBKIngredientsViewController topViewController]: unrecognized selector sent to instance 0x8a92450'

вид контроллера, к которому я segueing встроен в контроллер навигации, который я думаю, Мессинг его. Каким образом это происходит? Чтобы быть ясным, DBKViewController уже встроен в контроллер навигации, а push-сегмент толкает DBKViewController, а не контроллер навигации, внедряющий его. Я пробовал это разными способами, но никто не работает.

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if([segue.identifier isEqualToString:@"showIngredientsSegue"]){ 

     UINavigationController *navController = (UINavigationController *)segue.destinationViewController; 
     DBKIngredientsViewController *controller = (DBKIngredientsViewController *)navController.topViewController; 
     controller.targetRecipe = selectedRecipe; 
    } 
} 

IMG http://i39.tinypic.com/11joea1.png

ответ

2

Вы уверены, что segue.destinationViewController является UINavigationController? Похоже, что это просто DBKIngredientsViewController так это должно работать:

DBKIngredientsViewController *controller = (DBKIngredientsViewController *)segue.destinationViewController 

Кроме того, если DBKViewController уже имеют навигационный контроллер, то вам не нужно второй, если Вы выдвигаете DBKIngredientsViewController. Вам понадобится только вторая, если вы модно отображаете DBKIngredientsViewController.

+0

Хмм, я попробовал это. Это ошибка: Предупреждение: Попытайтесь представить в во время презентации! – user1657563

+0

Тогда проблема заключается в том, как вы представляете контроллер вида. Как выглядит контроллер представления? Вы увольняете модальность и толкаете в одно и то же время или одновременно нажимаете дважды? – Ric

+0

Думаю, это два толчка? Первый контроллер представления помещается поверх корневого контроллера навигационного представления. Затем я подталкиваю DBKIngredientsViewController в segue. – user1657563

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