我的iOS应用程序的故事板包含一个带有根ViewController的NavigationController。从辅助视图控制器,我想以编程方式显示根VC,其中附加的NavigationController显示在顶部,同时用一些数据实例化根VC。
到目前为止,我在辅助视图控制器中有以下内容:
UINavigationController* nav = [[UIStoryboard storyboardWithName:@"Storyboard" bundle:nil] instantiateViewControllerWithIdentifier:@"NavController"];
UIViewController* viewController = [[UIStoryboard storyboardWithName:@"Storyboard" bundle:nil] instantiateViewControllerWithIdentifier:@"RootVC"];
viewController.data = @"My test data";
[self presentViewController:nav animated:YES completion:nil];
根VC显示成功,顶部有导航栏,但是当我在rootVC逻辑中打印以下内容时,它显示为null:
NSLog(@"Initialized data: %@", self.data); // null
我该如何解决这个问题?似乎初始化的数据不是来自辅助控制器。
答案 0 :(得分:1)
您正在创建UIViewcontroller
的新实例,其标识符为“RootVC”并为其分配数据。
相反,您应该将数据分配给导航控制器的rootViewController,如下所示:
self.navigationController.viewControllers.firstObject.data = @"My test data";
这是同一类的不同实例的问题。