我在开发Iphone应用程序。我正在使用NSObject
文件进行所有webservices
解析Asynchronously
,并使用协议方法将webservice
结果(通常为NSMutableArray
)传递给ViewController
。
然后我在tableview
显示结果。但我的问题是表没有重载,因为在调用协议方法后,控制器返回NSObject
文件并且表没有重新加载。
我还尝试用方法-(void)tableReload
来说出两个陈述
[tblview reloadData];
[spinner stopAnimating];
in protocol。
我在调用协议第一个方法之后调用tableReload
方法。
这是我的代码:
-(void)requestFinished:(ASIHTTPRequest *)request
{
//My parsed data is stored in array
id<EventRepository>aReposit;
aReposit=(id<EventRepository>)eventLVC;
[aReposit successResponse:array];
[aReposit tableReload];
}
-(NSString *)successResponse:(NSMutableArray *)sresponse
{
//This is my first delegate method in protocol
//storing sresponse array value into another array here and using this array in tableview methods
}
-(void)tableReload
{
NSLog(@"This is TableReload Delegate Method in ListViewController");
self.tblView.delegate=self;
self.tblView.dataSource=self;
[self.tblView reloadData];
[self.spinner stopAnimating];
}
调用上面两个方法后,控制返回到对象文件,活动指示器没有停止,表没有重新加载。
任何机构都可以提出解决这个问题的想法或建议。
由于
答案 0 :(得分:0)
首先 - &gt;是你的tableReload方法被调用?
如果是,
关于TableViewData - 检查您在表上显示的数据。其内容是否已更改。尝试使用NSLog。
关于微调器 - 您的IBOutlet连接是否正确连接。
如果一切顺利,请尝试在主线程上调用tableReload。
答案 1 :(得分:0)
在委托函数处停止微调器。
-(void)tableReload
{
[self.spinner startAnimating];
self.tblView.delegate=self;
self.tblView.dataSource=self;
[self.tblView reloadData];
}
-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] lastObject]).row){
//table view loaded succesfully
[self.spinner stopAnimating];
}
}