【发布时间】:2020-05-12 22:45:14
【问题描述】:
所以我有一个tabBar。单击某个选项卡会将用户带到嵌入在navigationController 中的viewController。为了包含navigationController,我使用
viewController
myViewController = [storyboard instantiateInitialViewController];
而不是
myViewController = [storyboard instantiateViewControllerWithIdentifier:@"myID"];
后面的代码推送viewController但没有navigationController
这很好,直到我想将数据传递给实例myViewController。问题是,我不能使用引用初始viewController(即navigationController)的实例传递数据,但我可以使用直接引用myViewController 的实例来传递数据。换句话说:
这是为了获取数据(但没有navigationController):
viewController = [storyboard instantiateViewControllerWithIdentifier:@"experienceID"];
((ExperiencesListViewController*)viewController).experiences = self.experiences;
如果我尝试添加数据,这会崩溃,但如果我排除设置数据,则会给我一个navigationBar:
viewController = [storyboard instantiateInitialViewController];
((ExperiencesListViewController*)viewController).experiences = self.experiences;
希望我能很好地解释这一点。如果有什么我需要澄清的,请告诉我。
编辑
我的第一个想法是使用prepareSegue,但在tabs 之间移动时似乎不会触发。另一个想法是通过实例以某种方式访问myViewController,但不确定如何。
【问题讨论】:
标签: ios objective-c uiviewcontroller uinavigationcontroller instantiation