通过UINavigationController设置NSString对象,prepareForSegue

我试图设置一个dynamic的NSString值每次在我的应用程序按下表格单元格。 我能够通过下面的代码将variables传递给我自定义的UINavigationController –

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; NSString *page = [menuItems objectAtIndex:indexPath.row]; [[segue destinationViewController] setGrabPage: page]; } 

问题是grabPage只在NavigationController中设置,而不是在导航控制器中显示的顶视图。 如何将这个值传递给顶视图?

如果你的destinationViewController是一个UINavigationController,你应该把它转换成一个UINavigationController并且得到导航控制器的rootViewController。

把它投到这个第一个控制器的types,你很好走

编辑:添加示例代码

 - (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]; }