添加ViewController作为UITableViewCell中的子视图 - 没有显示
问题描述:
我想添加一个ViewController到我的TableView单元,但它在测试时没有显示出来。添加ViewController作为UITableViewCell中的子视图 - 没有显示
PhotoLocation是一个UIViewController子类。我在StoryBoard上创建了一个View Controller,并配置了一堆UILabels,UITextFields,UISwitch等。 PhotoLocation与该StoryBoard视图控制器相关联,其标识符是PhotoLocation。在一个单独的控制器 - UITableViewController,我有一个工作的TableView与细胞填充各种信息,我想添加PhotoLocation VC作为每个单元格的子视图。 (注意:PhotoLocation是一个自由大小的VC,大小为210x100)。
在我cellForRowAtIndexPath
方法我做了以下内容:
// snip code above which sets up the cell and performs various other things
PhotoLocation *photoLocation_ = [self.storyboard instantiateViewControllerWithIdentifier:@"PhotoLocation"];
[photoLocation_.view setFrame:CGRectMake(115, 0, 210, 109)];
[cell.contentView addSubview:photoLocation_.view];
return cell;
当我运行应用程序的子视图不会在细胞中出现。这里有什么我失踪?
答
如果我理解正确的话,尝试做制作榫文件(文件 - >新建文件 - >用户界面 - >查看)。删除“视图”并将表格视图单元格拖出。按照您在文章中描述的方式进行布局。在您的tableViewController做:
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
cell = tvCell;
self.tvCell = nil;
}
是的原因,你不能有画面2“viewControllers”在同一时间与控制器的控制器(标签栏,导航,SPLITVIEW)除外。您正在尝试将一个视图控制器放入另一个视图控制器中。
答
你试过吗?
PhotoLocation *photoLocation_ = [self.storyboardinstantiateViewControllerWithIdentifier:@"PhotoLocation"];
[photoLocation_.view setFrame:CGRectMake(115, 0, 210, 109)];
[cell addSubview:photoLocation_.view];
return cell;
交换和使用笔尖做的伎俩,谢谢。但是请注意,我确实将一个VC的加载作为一个子视图作为一个单元格工作。我把它加载到单元格中,但是在选择了单元格中的任何东西之后,我得到了一个运行时错误(我认为是错误的访问)。无论如何,笔尖是要走的路,再次感谢! – ElasticThoughts 2012-04-11 15:01:46