2011-01-18 80 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所以要溫柔:-)所有幫助非常感謝。

邁克

回答

0

這是Apple針對委託和數據源方法的命名約定。 numberOfSectionsInTableView:除了表格視圖之外沒有其他參數,所以參數在最後添加。 tableView:numberOfRowsInSection:接受另一個參數,即有關節的索引。蘋果已經決定,當有其他論點時,調用對象應該先去,然後爭論就來了。

+0

感謝您的所有意見。 – hydev 2011-01-20 14:25:51

0

退房的UITableViewController Class Reference

- (NSInteger)tableView:(UITableView *)tableView 

第一部分,NSInteger讓你知道你需要返回一個數字return 1;,第二部分(UITableView *)tableView讓你知道你正在處理的UITableView類。

+0

感謝您的所有意見。 – hydev 2011-01-20 14:24:15

1

方法名稱是「tableView:numberOfRowsInSection:」。第一個參數是實例,如果UITableView向數據源請求特定部分中的行數。這是一個有用的約定,因爲您可能將單個對象用作許多表視圖的數據源,或者希望在調用委託方法時以某種方式更新表視圖。通過將調用對象傳遞給委託,您可以避免需要委託維護對該對象的額外引用。

查看處理身份驗證的NSURLConnection委託方法,以瞭解真正必要的示例。

+0

感謝您的所有意見。 – hydev 2011-01-20 14:26:11

1

tableView:(UITableView *)tableView是有幫助的,如果你需要知道其中 tableView發送的委託方法。

+0

感謝您的所有意見。 – hydev 2011-01-20 14:25:14

相關問題