2012年4月16日月曜日

UIViewControllerにUITableViewを表示する

TableViewを使った画面を作ろうと思ってちょっと苦戦したのでメモ程度に。
TableViewを使った画面を作る場合、XCode4.2のテンプレートでは予め Master-Detail Application というのがあります。
これを使わずに画面上にTableViewを実装するやり方。

まずヘッダーファイルに以下を宣言
@interface ViewController : UIViewControler
<
    UITableViewDataSource,
    UITableViewDelegate
>

次にViewController.xibにTableViewを貼付けて関連付けを行います。
まず、アウトレットの設定から。
Assistant editorを開いて貼付けたTableViewをOutletとして登録します。

次に、このTableViewと上で宣言したUITableViewのDataSourceとDelegateに関連付けを行います。
これで画面からの関連付けは完了です。
あとは以下のメソッドをソースファイルに追加することで実装できます。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView
     numberOfRowsInSection:(NSInteger)section
{
    return 10;
}

- (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell
             = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc]
             initWithStyle:UITableViewCellStyleDefault
             reuseIdentifier:CellIdentifier] autorelease];
    }
    
    return cell;
}

- (void)tableView:(UITableView *)tableView
     didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

}

上のコード自体はMaster-Detail Application などで使用されているものと同じです。
戸惑う箇所は画面とソースの関連付けの部分かなと。。。

とりあえず忘れないように




0 件のコメント:

コメントを投稿