Frage

Ich habe diese Ansicht Stack:

UIViewController --> (Modal segue) --> 
UITabBarController --> (relationship) --> 
UINavigationController --> (relationship) --> 
UITableViewController --> (segue) --> UIViewController

Hier ist mein Günencode im UableViewController:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    NSLog(@"selected row...");
    [self performSegueWithIdentifier:@"showVmail" sender:self];
    NSLog(@"done segue");
}

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"showVmail"]) {
        NSLog(@"Got segue request...");
        NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];

        [segue.destinationViewController setMyVmail: [self.vmails objectAtIndex:indexPath.row]];

    }
}

Wenn ich auf ein Element im Tabellenansichts -Controller klicke, sehe ich diese Protokollnachrichten:

selected row...
Got segue request...
Setting myVmail... // from the new view controller
done segue

Und es geht nicht zu meinem neuen View -Controller. Wenn ich zu einem Modal wechsle, funktioniert es, aber natürlich gibt es keinen Button. Soweit ich sehen kann, habe ich alles richtig gemacht. Ich habe viele Antwort auf den Stapelüberlauf mit demselben Problem gelesen, und ihre Lösung besteht darin, den UinavigationController einzulegen. Ich habe das schon getan.

Alle Gedanken wären sehr geschätzt!

War es hilfreich?

Lösung

Ich habe den Vorschlag ausprobiert, wohin Sie in einfachen Fällen zurückkehren sollten. Ich habe den UinAvigationController im Storyboard geändert, um auf einen grundlegenden UIViewController zu verweisen, und dann, um eine Taste zu haben, die zu einem anderen UIViewController geeignet ist. Als ich es lief, habe ich immer noch meinen UitableViewController!

Dann erinnerte ich mich daran, dass ich die Objekte im UitabbarController programmatisch ausgefüllt habe und dass ich den UinavigationController nicht aufgerufen habe, sondern das übersprungen und den UitableViewController aufgerufen habe! Tatsächlich hatte ich wirklich das gleiche Problem wie alle anderen und verpasste den UinavigationController!

Ändern Sie mein Programm, um den uInavigationController anstelle des UableViewController zu verknüpfen, und alles funktioniert jetzt wie erwartet.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top