/ / Set NSString Object, bereite ForSegue über UINavigationController - ios, object-c

Setzen Sie das NSString-Objekt prepareForSegue über UINavigationController - ios, objective-c

Ich versuche jedes Mal, wenn eine Tabellenzelle in meiner App gedrückt wird, einen dynamischen NSString-Wert festzulegen. Ich kann die Variable mit dem folgenden Code an meinen benutzerdefinierten UINavigationController übergeben -

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSString *page = [menuItems objectAtIndex:indexPath.row];
[[segue destinationViewController] setGrabPage: page];

}

Das Problem ist, dass grabPage wird nur im NavigationController festgelegt und nicht die Draufsicht, die im Navigationscontroller angezeigt wird. Wie gebe ich diesen Wert an die Draufsicht?

Antworten:

0 für die Antwort № 1

Wenn Ihr destinationViewController ein UINavigationController ist, sollten Sie ihn in einen UINavigationController umwandeln und den rootViewController des Navigationscontrollers anfordern.

Geben Sie den Typ dieses ersten Controllers an, und Sie können loslegen

BEARBEITEN: Beispielcode hinzugefügt

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
NSString *page = [menuItems objectAtIndex:indexPath.row];

UINavigationController *nav = (UINavigationController *)[segue destinationViewController];
MyViewController *vc = (MyViewController *)(nav.viewControllers[0]);
[vc setGrabPage: page];
}