2013-03-25 51 views
2

我有一個RootViewController,其中包含一個viewControllers數組,其中包括table,view和tabBar控制器......其中一些有nibs,有些沒有,(我將幾個應用程序+ web應用程序的功能過去),但他們都工作正常。我有一個項目,但是,它使用故事板。我看到很多問題都是從故事板實例化一個程序化視圖,但是另一方面呢? 如何將故事板添加到我的編程實現的導航控制器?這可能嗎?如果不是,下一個最好的解決方法是什麼?感謝您的時間和考慮。RootViewController能否實例化故事板?

這裏是下面的模型我的.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]; 
+1

這應該是可能的。當你說它打破了,你是什麼意思?如果您收到錯誤,請發佈。 – rdelmar 2013-03-25 21:25:13

+0

「(lldb)」是輸出消息...沒有錯誤,只是在那個時候打破。 – Morkrom 2013-03-25 21:29:32

+1

我沒有看到你發佈的內容有什麼問題。 storyBoard和storyboardViewController如何聲明? – rdelmar 2013-03-25 21:39:58

回答

2

好不是我一個傻瓜......

我做這三樣東西:

改變:

storyboardViewController = [故事板instantiateViewControllerWithIdentifier: @ 「myViewCont」];

storyboardViewController = [故事板instantiateViewControllerWithIdentifier:@ 「iPhone」];

enter image description here

enter image description here

特別感謝評論者rdelmar,誰提到要檢查這個答案的束部。

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; 
相關問題