Segue导致黑屏

时间:2017-09-02 12:33:36

标签: ios objective-c iphone uitableview

我创建了显示城市列表的简单表格视图。然后我创建了初始化城市对象的简单城市类。然后在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

1 个答案:

答案 0 :(得分:0)

你在这一行做错了

 DetailViewController *dvc = [[DetailViewController alloc] init];

每当您使用storyboard并尝试推送Viewcontroller时,您需要在storyBoard中为控制器指定一个标识符,而不是执行alloc init。

只需用这一行替换你的alloc init,它就会适合你。

DetailViewController *dvc = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"];

是的,请确保在StoryBoard中提供标识符。