1

I'm trying to add a ViewController to my TableView cell however it is not showing up when testing.

PhotoLocation is a UIViewController subclass. I have a View Controller created on the StoryBoard with a bunch of UILabels, UITextFields, UISwitch, etc configured on it. PhotoLocation is associated with that StoryBoard View Controller and its Identifier is PhotoLocation.

In a separate controller - UITableViewController, I have a working TableView with cells that are populating with various information, I am trying to add the PhotoLocation VC as a subview of each cell. (Note: PhotoLocation is a freeform sized VC that is of size 210x100).

In my cellForRowAtIndexPath method I'm doing the following:

// 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;

When I run the app the subview does not show up in the cells. Is there something here I'm missing?

4

2 に答える 2

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」を表示することはできないからです。現在、あるView Controllerを別のView Controllerに配置しようとしています。

于 2012-04-09T22:43:47.130 に答える
0

これを試しましたか?

PhotoLocation *photoLocation_ = [self.storyboardinstantiateViewControllerWithIdentifier:@"PhotoLocation"];

[photoLocation_.view setFrame:CGRectMake(115, 0, 210, 109)];

[cell addSubview:photoLocation_.view];

return cell;
于 2012-04-10T04:46:48.193 に答える