2

我有一个 RootViewController,其中包含一系列 viewController,其中包括表、视图和 tabBar 控制器......其中一些有 nib,有些没有,(我正在结合过去创建的几个应用程序 + Web 应用程序的功能) 但它们都工作正常。然而,我有一个项目,它使用故事板。我看到很多关于从情节提要中实例化程序化视图的问题,但是反过来呢?如何将情节提要添加到我以编程方式实现的导航控制器?这可能吗?如果没有,下一个最好的解决方法是什么?感谢您的时间和考虑。

这是以下模型的 .h 代码:

 UIStoryboard *storyBoard;
UIViewController *storyboardViewController;

这是我的 .m 代码,它打破了我有 V 形的地方......

    self.viewControllers = [NSMutableArray arrayWithCapacity:self.apps.count];

storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
>>>storyboardViewController = [storyBoard instantiateViewControllerWithIdentifier:@"myViewCont"];
[self.viewControllers addObject:storyboardViewController];
4

2 回答 2

2

那我不就是个傻子吗...

我做了这三件事:

改变:

storyboardViewController = [storyboard instantiateViewControllerWithIdentifier:@"myViewCont"];

storyboardViewController = [storyboard instantiateViewControllerWithIdentifier:@"iPhone"];

在此处输入图像描述

在此处输入图像描述

特别感谢评论者 rdelmar,他提到要检查此答案的捆绑部分。

于 2013-03-27T14:18:55.747 回答
1

故事板上的 2011 WWDC 视频在会议快结束时说明了这一点。

使用instantiateInitialViewController(或者,如果您想从情节提要的中间开始,请使用instantiateViewControllerWithIdentifier:)。

这是一个来自当前项目的示例,它将故事板加载到选项卡栏控制器中:

    browserStoryboard  = [UIStoryboard storyboardWithName:@"ScheduleBrowse_iPhone" bundle:nil];
    resultVC = [browserStoryboard instantiateInitialViewController];
    UINavigationController *navigationController = (UINavigationController *)resultVC;
    filterChooserVC = (FilterChooserViewController *)navigationController.topViewController;
    filterChooserVC.managedObjectContext = self.managedObjectContext;
    filterChooserVC.kindOfContent = sortMode;
    filterChooserVC.filterGroup = filterGroup;
    resultVC.tabBarItem.image = [UIImage imageNamed:@"first"];
    resultVC.title = filterGroup.text;

返回resultVC。在调用例程中,创建以编程方式创建的视图控制器的数组。然后

self.tabBarController = [[[UITabBarController alloc] init] autorelease];
self.tabBarController.viewControllers = viewControllers;
self.window.rootViewController = self.tabBarController;
于 2013-03-25T21:27:43.627 回答