0

配列がいっぱいになった後、UITableViewは空になります。しかし、戻るボタンをクリックして、塗りつぶされた状態に戻ると。

ロードした場合

xmlParser = [[XMLParser alloc] loadXMLByURL:@"http://google.com?xml.php?"];

そのときViewDidLoadは問題ありませんが、パーサーには数秒かかります。

だから私はその行を次のように追加しました:

- (void)viewDidAppear:(BOOL)animated {

    if ([[xmlParser branch] count] == 0) {
         xmlParser = [[XMLParser alloc] loadXMLByURL:@"http://google.com?xml.php?"];

     }
}

その理由は、MapView最初にロードするときにXMLをパーサーにしたかったからです。

私のmainViewControllerはとの両方を持つように設定されていMapViewますUITableView; 両方ともデリゲートとして設定されます。

私のParserXML.m(xmlには独自のNSobjectファイルがあります)ファイルで、テーブルをリロードします

- (void)parserDidEndDocument:(NSXMLParser *)parser {


    NSLog(@"all done!");
    NSLog(@"stories array has %d items", [_branch count]);

    tableViews = [Maplocator alloc];

    [tableViews.tableView reloadData];

}

私の注釈は塗りつぶされていますが、塗りつぶされてMapViewいませんUITableViewが、戻ってクリックしてからもう一度マップをクリックすると、塗りつぶされます。(ただし、数秒かかります)

4

1 に答える 1

0

確認事項

  • 初めてロードするときにテーブルビューのデータソースに使用される配列に値がありますか?
  • Tableview データソースとデリゲート メソッドは IBOutlets で適切に実装または接続されていますか?

配列が空の場合、問題は初回ロード時のパーサーにあります

別のスレッドで呼び出しを行い、UI ブロックを回避し、解析が終了してデータが再読み込みの配列呼び出しにあるときに UI にアクティビティを含めます。

于 2013-03-05T15:14:22.457 に答える