当用户单击表视图中的一行时,它将转到详细视图,其中在viewDiDLoad方法中完成XML解析。由于行数为零,因此在完成XML解析之前会加载详细信息视图。
简而言之,在XML解析完成之前,会加载表视图。怎么做到这一点?我现在很长一段时间都面临着这个问题..
请求帮助!!
viewDidLoad: -
- (void)viewDidLoad
{
self.title = newsTitle;
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
xmlParser = [[XMLParser alloc] init];
NSString * tblName = [[NSString alloc] init];
int rowsCount;
rowsCount = 10;
tblName = @"bollywood";
[xmlParser loadMovieData:tblName andRowsCount:rowsCount];
}
答案 0 :(得分:1)
将表连接到IBOutlet时,请不要将数据源和委托与“FileOwner”连接
你有一个xml解析器委托 - (void)parserDidEndDocument:(NSXMLParser *)解析器在这个委托中设置表视图的数据源和委托。
答案 1 :(得分:0)
通过代理,您可以控制它。(即)将控件发送到XML Parser类,一旦完成解析,就可以对当前类进行bac控制并加载详细视图。
答案 2 :(得分:0)
使用代表。声明一个协议
@protocol myProtocol
-(Void)didFinishParsing;
@end
在重新加载tableview的位置实现此方法。
@interface reloadClass <myProtocol> : NSObject{
XMLParser *myParser;
}
@end
@implementation reloadClass
-(void)awakeFromNib
{
[myParser setDelegate:self];
}
-(void)didFinishParsing
{
[mytable reloadData];
}
/*your methods*/
在XML Parser类中使用didFinishParsing方法。
id <myProtocol>delegate;
完成解析后
[delegate didFinishParsing];