2016-04-17 25 views
3

我正在研究一個iOS應用程序,我想將它分成幾個Storyboard,問題是我似乎無法找出一種方法來設置Storyboard之間的引用作爲入口點。是否可以在Storyboard中引用其他Storyboard?

比如我想我Main.storyboard看起來是這樣的:

--> Authentication Storyboard --> Tabbed Storyboard --> ...

我新的iOS開發,我也希望這是簡單的,但似乎無法找到一種方法,做到這一點。

+0

想要不止一個故事板,就像Login.storyboard,Main.storyboard,你很困惑如何從不同的故事板調用控制器? –

回答

2

是的,你可以在一個項目中使用多個故事板但是不,你不能直接從另一個故事板內引用它們。

引用一個故事板使用上推出

你的項目目標可以使用任何它所包含的故事板。故事板入口點的參考可以在目標設置中找到。

enter image description here

  1. 選擇目標
  2. 選擇常規選項卡
  3. 在下拉主界面選擇最初使用的故事板。

引用在代碼

一個故事板因此,在這個例子中我希望推的ViewController到導航控制器。我想參考的視圖控制器可能在不同的故事板或我正在使用的當前視圖控制器中。代碼並不關心......

if let storyboard = UIStoryboard(name: "A2ndStoryboard", bundle: nil) { 
     if let vc = storyboard.instantiateViewControllerWithIdentifier("SomeViewController" as String) { 

     navigationController?.pushViewController(vc, animated: true) 
     } 
    } 

當你想引用這樣,你需要確保他們在正確的故事板確定ViewControllers:

enter image description here

+0

這正是我需要的。我有錯誤的想法,主要故事板需要作爲起點。謝謝。 – dk87

1

不使用多個故事板。使用多個viewcontrollerssegue之間的一個故事板和embednavigationcontroller。對於實例,使用一個視圖控制器進行身份驗證,如另一個視圖控制器的tab(tabbarviewcontroller)。從身份驗證VC到tabbarVC。希望這會有所幫助。 :)

0

正如你說,你是新來的iOS開發讓我嘗試回顧一下這個給你:

Interface Builder中(IB)是內置在Xcode中的工具,可以幫助你設計你的用戶界面沒有任何代碼。 IB可以做的所有事情也可以通過編程完成。 IB支持兩種不同類型的文件:XIB文件和故事板。

XIB文件(擴展名.xib)是您可以使用IB設計的UIView對象的集合。

故事板(擴展.storyboard)是UIViewController對象,所有具有view屬性,您可以使用IB設計的集合。

Conlusion: 那裏(當前)不存在Interface Builder文件類型,它代表XIB或Storyboard的集合。因此,截至目前,您無法在Storyboard中引用Storyboard。相反,您仍然可以將視圖控制器分爲不同的情節串連圖板,並以編程方式在它們之間轉換

這裏有SO到幫助您開始與程序轉換另一個線程:

How can I load storyboard programmatically from class?

我希望這有助於。

+0

謝謝你的分解,它幫助我更好地理解故事板應該如何工作。被接受的答案有一個具體的解決方案,這就是爲什麼我接受它,雖然我會接受這兩個。 – dk87

相關問題