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 № 1Wenn 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];
}