我希望你们在我的代码中帮助我,这是从网站加载数据。让我们从代码开始:
<bean name="/items"
id="itemsRoute"
autowire="byName"
scope="prototype"
parent="abstractRestletResources"
class="com.my.service.rest.resource.ItemResource"/>
上面的代码是从Url加载数据并填充TableView,这一步正常。该应用程序有另一个ViewController,它是DetailsView,在DetailsView中用户可以更新一些信息。当用户返回TableView时没有发生任何事情(我的意思是数据仍然相同而且没有更新)。我试图从ViewDidAppear调用loadDataFromurl但它不起作用。
我添加了:
-(void)viewDidLoad
{
[self loadDataFromUrl];
}
-(void)loadDataFromUrl {
NSString *myUrl = [NSString stringWithFormat:@"http://WebSite/PhpFiles/File.php"];
NSURL *blogURL = [NSURL URLWithString:myUrl];
NSData *jsonData = [NSData dataWithContentsOfURL:blogURL];
NSError *error = nil;
NSDictionary *dataDictionary = [NSJSONSerialization
JSONObjectWithData:jsonData options:0 error:&error];
for (NSDictionary *bpDictionary in dataDictionary) {
HotelObject *currenHotel = [[HotelObject alloc]initWithVTheIndex:
[bpDictionary objectForKey:@"TheIndex"] timeLineVideoUserName:
[bpDictionary objectForKey:@"timeLineVideoUserName"] timeLineVideoDetails:
[bpDictionary objectForKey:@"timeLineVideoDetails"] timeLineVideoDate:
[bpDictionary objectForKey:@"timeLineVideoDate"] timeLineVideoTime:
[bpDictionary objectForKey:@"timeLineVideoTime"] timeLineVideoLink:
[bpDictionary objectForKey:@"timeLineVideoLink"] timeLineVideoLikes:
[bpDictionary objectForKey:@"timeLineVideoLikes"] videoImage:
[bpDictionary objectForKey:@"videoImage"] timeDeviceToken:
[bpDictionary objectForKey:@"deviceToken"]];
[self.objectHolderArray addObject:currenHotel];
}
}
-(NSMutableArray *)objectHolderArray{
if(!_objectHolderArray) _objectHolderArray = [[NSMutableArray alloc]init];
return _objectHolderArray;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:
(NSInteger)section
{
return [self.objectHolderArray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:
(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
Cell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier
forIndexPath:indexPath];
HotelObject *currentHotel = [self.objectHolderArray
objectAtIndex:indexPath.row];
cell.lblID.text = currentHotel.vvTheIndex;
cell.lblName.text = currentHotel.vvUserName;
cell.lblCity.text = currentHotel.vvVideoDate;
cell.lblAddress.text = currentHotel.vvVideoLikes;
return cell;
}
但结果仍然相同。
她也是我的NSObject代码:
[self.tableView reloadData];
我的问题是:如何在从DetailsView移动时甚至在我进行刷新时更新TableView。
提前致谢
答案 0 :(得分:0)
您没有正确地重新加载UITableView的数据源。
假设远程URL正在使用新数据进行更新,并且问题只是重新加载TableView,请确保在[self.tableView reloadData]
完成之后添加loadDataFromUrl
。
reloadData
方法将始终刷新表格的内容,因此要么没有在正确的时间调用,要么您没有更新self.objectHolderArray
。 (您可以在更新后调用loadDataFromUrl
后设置断点来调试它。)
答案 1 :(得分:0)
在viewDidLoad生命周期第一次[self.tableView reloadData]重新加载tableview然后另一项工作。