我试图将ViewController添加到我的TableView单元格中,但是在测试时它没有出现。
PhotoLocation是一个UIViewController子类。我在StoryBoard上创建了一个View Controller,上面配置了一堆UILabel,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;
当我运行应用程序时,子视图不会显示在单元格中。我有什么东西在这里吗?
答案 0 :(得分:2)
如果我理解正确,请尝试创建一个nib文件(文件 - >新文件 - >用户界面 - >查看)。删除“视图”并将表视图单元格拖出。按照你在帖子中描述的那样进行解决。在tableViewController中执行:
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
cell = tvCell;
self.tvCell = nil;
}
原因是,除了控制器控制器(Tab Bar,Navigation,SplitView)之外,你不能同时在屏幕上有2个“viewControllers”。您正试图将一个视图控制器放在另一个视图控制器中。
答案 1 :(得分:0)
PhotoLocation *photoLocation_ = [self.storyboardinstantiateViewControllerWithIdentifier:@"PhotoLocation"];
[photoLocation_.view setFrame:CGRectMake(115, 0, 210, 109)];
[cell addSubview:photoLocation_.view];
return cell;