0

Xcode 4.3.2で次のことを試しています。シングル ビュー アプリケーションを作成しました。私のViewController道具UITableViewDelegateUITableViewDataSource

ViewController.m

UITableView *tv = [[UITableView alloc] initWithFrame:CGRectMake(0, 10, 120, 100)
                                               style:UITableViewStylePlain];
tv.delegate = self;
tv.dataSource = self;

[self.view addSubview:tv];   

numberOfSectionsInTableViewnumberOfRowsInSectioncellForRowAtIndexPathおよびを実装しdidSelectRowAtIndexPathました。問題なく動作し、「ようこそ」が 2 行で表示されます。しかし、UITableView作成をinitに配置すると、機能しません。

- (id)init
{
    self = [super init];
    if (self) {
        UITableView *tv = [[UITableView alloc] initWithFrame:
            CGRectMake(0, 10, 120, 100) style:UITableViewStylePlain];
        tv.delegate = self;
        tv.dataSource = self;
        [self.view addSubview:tv];
    }

    return self;
}
4

1 に答える 1

0

2つのこと:

  • xibファイルまたはストーリーボードからロードする場合、使用されるイニシャライザーはですinitWithCoder:

  • ビューコントローラのビューは、必要になるまでロードされません。つまりviewDidLoad:、init...メソッドではありません。(ただし、プロパティviewDidLoad:への参照によってトリガーされviewます。)

于 2012-08-14T16:04:45.183 に答える