2011-02-01 15 views
1

私はUITableViewsでいくつかのビューを持っていますので、表示するデータがないという簡単なラベルが付いた行を追加できるように、それぞれにコードを追加したいと思います。Obj-C、いくつかのテーブルビューがあり、すぐにデータが見つからないと言うコードを追加する必要がありますか?

何が少し複雑になるのは、私がカスタムセルを使用していることです。

大量のデータ配列関数を変更する必要はありませんが、この機能を多数のテーブルにすばやく追加する方法は考えられません。

誰も私に何をすることができますか?

答えて

3

tableView:numberOfRowsInSection:データソースメソッドでは、通常通り行数を取得します。次に、数値が0の場合は、代わりに1を返します。 tableView:cellForRowAtIndexPath:メソッドでは、同じテストを実行します。データがない場合は、別のセルを使用してメッセージ用に設定します。

次の例では、1セクションがあり、データが文字列を含むtheArrayという名前のNSArrayインスタンス変数であることを前提としています。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    NSInteger num = theArray.count; 
    return (num ? num : 1); 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell; 
    if(theArray.count == 0) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease]; 
     cell.textLabel.text = @"No Data Found"; 
     return cell; 
    } 
    // Normal processing here 
} 
+0

うーん、私はそれがうまくいくかもしれないと思うが、私はまた、セクションを持っている、あなたはnumberOfSectionsInTableViewへの復帰を持っているようI'veは同じコードを追加しましたが、私は他の場所で配列を渡してはいけません。セクションを含めて答えを広げることができますか? – Jules

+0

複数のセクションを含めるには、セクションをチェックして使用するアレイを決定します。他の場所に配列を渡してはいけないということはどういう意味ですか? – ughoavgfhw