我创建了显示城市列表的简单表格视图。然后我创建了初始化城市对象的简单城市类。然后在viewcontroller中,我从cityArray中的url中检索数据。然后将该数组显示到tableview中。然后我使用此函数将选定的行数据发送到ViewController的详细信息
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
DetailViewController *dvc=[[DetailViewController alloc] init];
//retrive the current selected city
City *currentCity=[cityArray objectAtIndex:indexPath.row];
dvc.name=currentCity.cityName;
dvc.population=currentCity.cityPopulation;
dvc.country=currentCity.cityCounrty;
[self.navigationController pushViewController:dvc animated:YES];
}
1-我希望城市列表应显示此字幕中相应国家/地区的列表,以便在此功能中进行以下更改但不起作用
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier=@"Cell";
UITableViewCell *cell =[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell==nil) {
cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
// cell.textLabel.text=[NSString stringWithFormat:@"Cell %d",indexPath.row];
// retrieve the current city object for use with this indexpath.row
City *currentCity=[cityArray objectAtIndex:indexPath.row];
cell.textLabel.text=currentCity.cityName;
cell.detailTextLabel.text=currentCity.cityCounrty;
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
return cell;
}
2-我希望当用户点击城市列表中的tableview单元格时。表视图应该在DetailViewController中显示城市的相应细节。但是DetailViewController正在显示黑屏。如何删除这个后屏并获得实际记录? 您可以从此链接下载示例项目以进行更正。https://drive.google.com/file/d/0B5pNDpbvZ8Snd3lhVFpZTWJveVU/view?usp=sharing
答案 0 :(得分:0)
你在这一行做错了
DetailViewController *dvc = [[DetailViewController alloc] init];
每当您使用storyboard并尝试推送Viewcontroller时,您需要在storyBoard中为控制器指定一个标识符,而不是执行alloc init。
只需用这一行替换你的alloc init,它就会适合你。
DetailViewController *dvc = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];
是的,请确保在StoryBoard中提供标识符。