我在Xcode中创建了一个拆分视图项目,我使用NSXMLParser
从Internet上检索数据和XML文件。数据很好并且假设结构正确,但是当我测试它时,我发现{<1}}方法在之前被称为我的NSXMLParser已经完成它的数据运行,从而导致一张空白的桌子。我没有在预先定义的类中看到任何链接到UITableViewDelegate
,正如许多StackOverflow问题所引用的那样。在self.tableView
完成工作后,我将如何重新加载RootViewController
中的数据?
编辑我在我的代码中设置了一些NSXMLParser
点,您可以通过此控制台输出看到在数组之前调用NSLog
方法任何对象
UITableViewDelegate
EDIT2 让我澄清一下:如何创建与使用拆分视图模板创建的窗口左侧的2011-05-23 19:41:17.591 appname[2804:207] numberOfSectionsInTableView array count: 0
2011-05-23 19:41:17.596 appname[2804:207] numberOfSectionsInTableView array count: 0
2011-05-23 19:41:17.600 appname[2804:207] numberOfSectionsInTableView array count: 0
2011-05-23 19:41:17.610 appname[2804:7303] callParse array count: 2
2011-05-23 19:41:19.911 appname[2804:207] hudWasHidden array count: 2
的某种连接?它不是在Interface Builder中创建的,所以我不能做UITableView
。
答案 0 :(得分:1)
如果你没有指向tableView的指针,只需使用委托或通知告诉你的RootViewController重新加载数据。
我认为简单的方法就是通知。查看official documentation。
简而言之,您可以通过在RootViewController中注册这些来添加查找通知:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(xmlDidFinish:)
name:@"finishXML" object:nil];
在您的XMLParser中,您实际上在完成此类
后发布通知[[NSNotificationCenter defaultCenter]
postNotificationName:@"finishXML" object:self];
答案 1 :(得分:0)
UITableView有一个方法reloadData
,它将再次调用tableViews委托方法(从而重新填充表)。解析器完成它的工作后,调用[tableView reloadData]
,其中tableView应替换为您的UITableView实例。
答案 2 :(得分:0)
我没有找到答案,我创建了一个新项目并选择了不同的方法。