1

iOS7 に移行するアプリがあります。私のアプリには、UITableViewController のサブクラスがあり、NSDictionaires の配列を順番に入力します。このクラスは、以前のバージョンの iOS 7 では問題なく動作しました。

しかし、XCode 5 で編集を開始して以来、UITableViewCells は表示されません。セクション ヘッダーはあり、セルの「配置」も正しいようです。

cellForRowAtIndex によって返されたセルを NSLog に出力すると、次のようになります。

2013-09-27 14:53:00.008 MyApp[25278:a0b] Cell for: <UITableViewCell: 0xc5f7ca0; frame = (0 681; 703 40); text = 'Status'; autoresize = W; layer = <CALayer: 0xc5f7e30>>

StoryBoard のセルを使用するように切り替えましたが、役に立ちませんでした。cellForRowAtIndex を次のように変更しても:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
cell.textLabel.text = @"Cell";
return cell;

私は何も得ません。viewWillAppear および viewDidLoad メソッドのすべてを削除しました。しかし、それは影響を与えませんでした。また、新しい TableViewController サブクラスも作成しました。上記のコードを使用すると、問題なくセルが表示されます。私の細胞が消えてしまう原因は何だろう?

4

3 に答える 3

0

私は自分の問題を理解しました。あなたが助けを求めるときはいつも起こります。tableview Datasource のオブジェクトを設定するメソッドには、次の行がありました。

    for(UIView *view in self.view.subviews){
        [view removeFromSuperview];
    }

おそらく、セルの数が限られており、各セルのスタイルが異なるため、最初はデキューしていなかったからでしょう。ストーリーボードで複数のデザインを使用し、デキュー時に別の識別子を使用して、さまざまなスタイルをカバーしました。

于 2013-09-27T13:59:53.460 に答える
0

ペン先またはストーリーボードでセルを作成するか、テーブルの初期化コードで次のいずれかのメソッドを使用して、セルを登録したことを確認してください。

– registerNib:forCellReuseIdentifier:
– registerClass:forCellReuseIdentifier:
于 2013-09-27T13:46:50.653 に答える
-2

このアプローチを使用します。あなたのコードでは、tableView deque ..メソッドがセルを返さない場合はどうなりますか。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
于 2013-09-27T13:27:27.083 に答える