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?"];

     }
}

原因是因为我希望 XML 在MapView首先加载时进行解析。

我的 mainViewController 设置为同时具有MapViewUITableView;两者都设置为代表。

在我的 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数据源的数组中有值吗?
  • Tableview 数据源和委托方法在 IBOutlets 中正确实现或连接?

如果数组为空,则问题出在第一次加载时解析器

在单独的线程中进行调用以避免 UI 阻塞,并在解析完成时在 UI 中包含一个活动,并且数组调用中存在数据以进行 Reload

于 2013-03-05T15:14:22.457 回答