在xml解析完成之前加载tableview,未加载数据

时间:2011-10-15 06:11:34

标签: iphone objective-c ios ios4

当用户单击表视图中的一行时,它将转到详细视图,其中在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];  
}

3 个答案:

答案 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];