2012-04-04 68 views
2

我正在尋找使用storyboards提供的新功能重建我的應用程序的設置部分。此時不想觸摸我的其他應用程序,因此我的主要NIB將停留。從Nib內部啓動Storyboard?

現在從我NIB去當「主編tabBar另一個NIB我只是在IB添加viewControllertabBar,然後NIB Name屬性設置爲我要當按下此標籤加載NIB

但是我沒有看到'storyboard name'屬性,那麼這是如何完成的?

回答

3

目前沒有「官方」的方式來做,但你可以用一些技巧來做到這一點。

1)以通常的方式將您的視圖控制器添加到筆尖中的筆尖。將筆尖字段留空。

2)創建你的故事板並添加你的視圖控制器。設置類,並設置(我將使用「theID」在這個例子中)

3)添加靜態布爾VAR你.m文件,執行外或接口

static BOOL aFlag = NO; 

4)故事板ID在你的ViewController類重寫此方法:

- (id) awakeAfterUsingCoder:(NSCoder *)aDecoder 
{ 
    if (!aFlag){ 
     aFlag = YES; 
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil]; 
     return [storyboard instantiateViewControllerWithIdentifier:@"theID"]; 
    } else { 
     return self; 
    } 
} 

主要有:

  • 當你從標籤欄筆尖加載對象,首先調用「initWithCoder」,並且在initWithCoder,awakeAfterUsingCoder被調用之後,對象加載時沒有使用nib
  • ,並且在那裏用另一個從storyboard加載的對象替換對象。當您從故事板加載對象時,另一個對initWithCoder和awakeAfterUsingCoder的調用會在故事板中歸檔,但存檔在故事板中的同一類對象
  • 。您可以使用該標誌,以避免一個循環,並返回self(在第二個電話,對象從情節串連圖板加載,以便返回自己是確定)

我試着和它的作品好;-) 如果你想在這裏一個示例項目:http://www.lombax.it/files/testTabNib.zip

+0

它的工作原理,但由於某種原因TabBarItem的圖像已經消失......任何想法爲什麼? – Kof 2013-02-10 09:58:56

+1

選項卡欄項目(出現在選項卡欄上的按鈕)是視圖控制器的屬性,而不是選項卡欄的屬性。所以,你必須添加一個標籤欄項目到故事板中的新ViewController。您可以通過編程或簡單地以圖形方式進行。從ViewController下的對象庫中拖放一個新的Tab Bar Item(作爲一個孩子) – LombaX 2013-02-10 10:21:24