2017-09-02 2 views
0

Ich erstellte die einfache Tabellenansicht, die die Liste der Städte anzeigt. Dann erstellte ich einfache Stadt Klasse, die Stadt Objekt initialisiert.Dann in ViewController ich Daten aus url in cityArray abrufen.Dann zeigte diese Array in tableview. Dann schickte ich die ausgewählten Zeilendaten in Detailviewcontroller mit dieser FunktionÜberleitung führen zu schwarzen Bildschirm

-(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- ich die Liste der Städte möchte, sollte für dieses i in dieser Funktion folgende Änderungen in Untertitel Liste der entsprechenden Länder angezeigt, aber es funktioniert nicht

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *[email protected]"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]; 
    //retiver 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- Ich möchte, wenn der Benutzer Tabellenansicht Zelle in der Liste der Städte. Die Tabellenansicht sollte das entsprechende Detail der Stadt in DetailViewController anzeigen. Aber DetailViewController zeigt schwarzen Bildschirm an. Wie kann ich diesen Bildschirm entfernen und den tatsächlichen Datensatz abrufen? Sie können das Beispielprojekt von diesem Link zur Korrektur herunterladen. https://drive.google.com/file/d/0B5pNDpbvZ8Snd3lhVFpZTWJveVU/view?usp=sharing

+0

Sie müssen Ihren DetailViewController mit [Self.storeboard instanziateViewControllerWithIdentifier: @ "DetailViewController"] –

+0

instanziieren Ich habe versucht, Antwort auf diese Links gegeben. Aber nicht von ihnen funktioniert .https: //stackoverflow.com/questions/14929039/pushviewcontroller -leads-to-black-screen ... https://stackoverflow.com/questions/22259246/navigation-controller-shows-black-screen .. https://stackoverflow.com/questions/41407841/navigation-controller- showing-black-screen –

+0

Haben Sie im Storyboard eine Kennung für DetailViewController angegeben? –

Antwort

0

Sie in dieser Zeile falsch machen

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

Wenn Sie Storyboard verwenden und versuchen, einen Viewcontroller zu drücken, müssen Sie dem Controller eine Kennung in dem Storyboard geben, statt alloc init zu tun.

Ersetzen Sie einfach Ihre Alloc-Init mit dieser Zeile und es wird für Sie arbeiten.

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

Und ja, stellen Sie sicher, dass Sie die Kennung in Ihrem StoryBoard geben.

+0

@Wwwwwwwwwwwww hat meine Lösung Ihr Problem gelöst? Wenn ja, können Sie die Antwort aufheben und als Antwort markieren. Es kann anderen helfen. –

Verwandte Themen