2011-01-18 12 views
1

iOSでUITableViewとUITableViewControllerを使用する方法を学習しています。自分自身を混乱させるかもしれないと思います。私は単純なTableViewを作成し、私は2つのセクションがあります。複雑ではありません。UITableViewとUITableViewControllerのデリゲートを理解する

私が定義されている以下の持っているし、それが正常に構築します。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 2; 
} 

- (NSInteger)tableView:(UITableView *)tableView 
numberOfRowsInSection:(NSInteger)section 
{ 
    // Section is going to be either 0 or 1, high or low 
    if (section == 0) { 
     return 1; 
    } 
    else { 
     return 2; 
    } 
} 

しかし、私は理解していないことはメソッドの定義です。私は開始(NSInteger)を理解するので、両方のメソッドは整数を返す必要があります。 numberOfRowsInSectionで始まりますtableView:(UITableView *)tableViewと私はなぜ理解できませんか?

私はiOSのプログラミングに慣れているので、穏やかに:-)すべての助けが大変感謝しています。 UITableViewController Class Reference

- (NSInteger)tableView:(UITableView *)tableView 

アウト

マイク

答えて

0

これは、デリゲートとデータソースメソッドのAppleの命名規則です。 numberOfSectionsInTableView:テーブルビュー以外の引数がないため、最後に引数が追加されます。 tableView:numberOfRowsInSection:別の引数、問題のセクションのインデックスをとります。 Appleは、他の引数があるときには、呼び出し元のオブジェクトが先に進み、その引数がその後に来ると判断しました。

+0

すべてのコメントありがとうございます。 – hydev

0

チェック最初の部分、NSIntegerはあなたがあなたがあなたが扱っていることを知っている数return 1;(UITableView *)tableViewができます第二部を返却する必要があることを知ることができますUITableViewクラス。

+0

すべてのコメントありがとうございます。 – hydev

1

メソッド名は「tableView:numberOfRowsInSection:」です。最初の引数は、特定のセクションの行数をデータソースに問い合わせているUITableViewの場合のインスタンスです。これは、単一のオブジェクトを多数のテーブルビューのデータソースとして機能させたり、デリゲートメソッドが呼び出されたときに何らかの方法でテーブルビューを更新したりする場合に便利な方法です。呼び出すオブジェクトをデリゲートに渡すことで、デリゲートがそのオブジェクトへの追加参照を保持する必要がなくなります。

これが本当に必要な場所の例については、認証を扱うNSURLConnectionデリゲートメソッドを見てください。

+0

すべてのコメントありがとうございます。 – hydev

1

tableView:(UITableView *)tableViewあなたが知る必要がある場合はです。 tableViewがそのデリゲートメソッドを送信しました。

+0

すべてのコメントありがとう。 – hydev

関連する問題