2013-12-09 50 views
0

我想创建一个非常简单的应用程序,虽然我卡在几天同样的问题...... 我使用故事板和我目前的设置是这样的: storyboardIOS - 使用容器,表视图和详细视图 - 如何保持详细视图里面容器

我的目标是保持在“项目视图控制器”中的所有内容除了容器内发生的情况。 “注释表视图”显示我的容器内确定,但在tableview中攻一小区时,“注释显示视图”覆盖整个屏幕(请注意,在故事板,它继承了正确的大小)。 这是我的“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]; 

} 
} 

任何想法如何,我可以使这项工作?

感谢, 乔纳森

回答

0

我认为这个问题是推SEGUE。按推广需要执行UINavigationController。我想你在图片左边没有显示UINavigationController。当执行赛格时,这是用于赛格的UINavigationController

对此问题的一个修复方法是在ProjectViewControllerCommentsTableView之间有另一个UINavigationController

容器 - >的UINavigationController - > CommentsTableView - > CommentShowViewController。

取消选中“显示导航栏”,在IB,如果你不希望它显示。

+0

谢谢!它很棒! –

+0

关于此解决方案的一个问题。我遇到过类似的问题,当我在容器和初始tableviewcontroller之间粘贴额外的uinavigationcontroller时,它抱怨我在prepareForSegue方法中传递的属性缺失。这是因为它试图将数据传递给navigationcontroller而不是目标uitableviewController。这里有没有一个步骤? – sapatos

+0

'segue.destinationViewController'可能会返回'UINavigationController'。您需要改用'segue.destinationViewController.topViewController'。 – Jzon