2013-12-09 5 views
0

Я пытаюсь создать довольно простое приложение, хотя я застрял в одной и той же проблеме в течение нескольких дней ... I ' м с использованием раскадровки, и мой текущий настрой: storyboardiOs - Использование контейнера, вида таблицы и подробного представления - Как сохранить подробный вид внутри контейнера

Моя цель - сохранить все в «Контроллере просмотра проекта» так же, за исключением того, что происходит внутри контейнера. «Просмотр таблицы комментариев» отображается в моем контейнере, но при нажатии на ячейку в представлении таблицы «Просмотр комментариев» охватывает весь экран (обратите внимание, что в раскадровке он наследует размер правильно). Это как мой «prepareForSegue» выглядит (я попытался фиксируя размер экземпляра до размера Tableview):

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

if ([[segue identifier] isEqualToString:@"showComment"]){ 
    CommentShowViewController *csvc = [segue destinationViewController]; 

    [[csvc view] setFrame:CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height)]; 

    NSIndexPath *path = [commentsTable indexPathForSelectedRow]; 
    Comment *c = [aCommentsList objectAtIndex:[path row]]; 
    [csvc setCurrent:c]; 

} 
} 

Любые идеи, как я могу сделать эту работу?

Спасибо, Jonathan

ответ

0

Я думаю, что проблема толкающий переход. Push segues необходимо выполнить UINavigationController. Я думаю, у вас есть UINavigationController слева на картинке, которая не показана. Когда выполняется segue, это UINavigationController, который используется для сеанса.

Одно исправление для этой проблемы должно состоять в следующем: UINavigationController между ProjectViewController и CommentsTableView.

Контейнер -> UINavigationController -> КомментарииTableView -> CommentShowViewController.

Снимите флажок «Показывает панель навигации» в IB, если вы не хотите, чтобы она показывалась.

+0

Thank! Он отлично работает! –

+0

Один вопрос по этому решению. У меня была аналогичная проблема, и когда я прикрепляю дополнительный uinavigationcontroller между контейнером и начальным контроллером tableview, он жалуется на отсутствие свойств, которые я передаю в методе prepareForSegue. Это связано с тем, что он пытается передать данные в контроллер навигации, а не на целевой uitableviewController. Здесь нет шага? – sapatos

+0

Возможно, 'segue.destinationViewController' вернет' UINavigationController'. Вместо этого вам нужно использовать 'segue.destinationViewController.topViewController'. – Jzon

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