3

アイテムを含む静的なテーブル ビューが必要なだけです。このタスクには、ストーリーボード付きの Xcode 4.2 を使用しました。そこで、tableViewController (サブクラス UITableViewController) を使用して TableView を作成しました。コンテンツを「静的セル」、スタイルを「グループ化」と定義しました。

その後、いくつかのラベルと、それらのセルに入れたいすべてのオブジェクトを配置します。tableViewController にアウトレットを作成しました。

#import <UIKit/UIKit.h>

@interface tableviewcontroller : UITableViewController
@property (weak, nonatomic) IBOutlet UILabel *label1;
@property (weak, nonatomic) IBOutlet UILabel *label2;
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmented;
@property (weak, nonatomic) IBOutlet UIImageView *imageview;
@property (weak, nonatomic) IBOutlet UITextView *text;

@end

セルラベルにいくつかのコンテンツを入れます:

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.label1.text = @"This is a title";
    self.label2.text = @"Annika";
    self.imageview.image = [UIImage imageNamed: @"picture.jpg"];
}

ビルドして実行した後、要素が表示されません...何が間違っていましたか?

左: ストーリーボード、右: シミュレーター。 ここに画像の説明を入力

4

1 に答える 1

13

静的テーブル ビューの場合、どのデータソース メソッドも実装しないでください。UITableViewController の基本実装には、ストーリーボード ファイルを読み取って適切なコンテンツを返すこれらのメソッドの独自のバージョンがあります。メソッドは、表の内容を提供するメソッドです。たとえば、numberOfRows、numberOfSections、heightForRow、cellForRow などです。

あなたの場合、tableView:cellForRowAtIndexPath:毎回空のセルを実装して返しました。これは、セルのサイズは正しいが、コンテンツがなくなったことを意味します。

また、静的テーブル ビューのコンテンツへのアウトレットは、呼び出されるまで設定されませ [super viewWillAppear:animated]。テーブルビューはその時点でコンテンツを要求していないため、呼び出し元のviewDidLoadではまだnilです。

于 2012-06-28T08:15:09.647 に答える