0

UITableViewとカスタムタブバー(基本的には6つのUIButtonを含むUIView)を保持する完全なカスタムビューがあります。

plistファイルからデータを読み込んでから、カテゴリに基づいてデータを複数の配列(その他のアイテムの配列、メールアイテムの配列など)に並べ替えています。

タブバーの各ボタンはカテゴリを表し、ボタンを押すとカスタム関数「miscSelected」などを呼び出します。

テーブルビューを完全にリロードしてから、選択した配列に基づいてテーブルビューを表示するにはどうすればよいですか(他のカテゴリと同じように、その他のカテゴリを選択すると、テーブルビューが自動的にクリアされ、その他の配列データが読み込まれます)。

私が実験したメソッドが作成され、NSStringに「selection」という名前が付けられます。次に、各ボタン関数で、選択したセクションと同じになるようにselectedを設定します。私のcellForRoxAtIndexPathメソッドには、次のものがあります。

if ([self.selection isEqualToString:@"All Items"]) {
        NSArray *mainDataArray = [NSArray arrayWithContentsOfFile:self.plistFile];

        NSSortDescriptor *brandDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES];
        NSArray *sortDescriptors = [NSArray arrayWithObject:brandDescriptor];
        self.sortedData = [mainDataArray sortedArrayUsingDescriptors:sortDescriptors];

    }
    else if ([self.selection isEqualToString:@"Misc Items"]){

        self.sortedData = [NSArray arrayWithContentsOfFile:self.plistFile];


    }

    cell.itemTitle.text = [[self.sortedData objectAtIndex:indexPath.row] objectForKey:@"name"];

例とテストのために、同じデータを表示しているだけです。一方のボタンだけでアルファベット順に表示され、もう一方のボタンでは表示されません。

このコードは、スクロールダウンとバックアップを開始した場合にのみ機能しますが、ボタンを押しても実際には更新されません。myTablereloadDataを呼び出しても何も起こりません。

どんな助けでも素晴らしいでしょう、ありがとう!

4

1 に答える 1

1

それで、私はさらに多くのことを探すのにかなりの時間を費やし、解決策を見つけました。知りたい人にとっては、次のような小さなコードでした。

[self.myTable performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];

今完璧に動作します!

于 2012-11-11T16:57:37.233 に答える