2013-01-21 61 views
6

我已經將容器視圖拖到我的一個視圖控制器上。這帶有一個Embed Segue。運行產生這樣的:嵌入塞格 - iOS 5

'Could not instantiate class named UIStoryboardEmbedSegueTemplate' 
從它似乎這不是在IOS 5實現。然而,問題並未暗示修復其他幾個計算器問題

左右。 XCode不會讓我使用任何其他類型的賽格。

如果答案是創建一個自定義的容器視圖,我會去那個。過去幾天我已經看到了很多代碼。只是想知道是否有一種方法可以使用提供的Container View對象來執行此操作。

回答

9

問題是Embed segue是iOS 6+。 它失敗了,因爲你試圖實例化在iOS 5中不存在的EmbedSegue內部類。顯然的解決方案是不使用EmbedSegue,如果你需要iOS 5的支持:)

這裏是另一個問題 - 用什麼來代替?我目前遇到同樣的問題;我會分享,如果我找到任何優雅的架構解決方案。


看起來解決方案對於任何「老派」iOS開發人員來說都是非常明顯的。 以下是你如何做到這一點。

  1. 在你 「父」 視圖控制器實例化 「子」 視圖中viewDidLoad中控制器:或合適每當
  2. [自addChildViewController:childVC];
  3. [self.view addSubview:childVC.view];
  4. childVC.view.frame = ....;

現在你應該看到你爲你的孩子做過的視圖在筆尖或故事板中的VC會顯示在你指定它的父視圖中。

希望這將有助於任何人企圖靈魂脫鉤他們的邏輯:)

乾杯, 丹

+0

剛添加EmbedSegue替代的iOS <6 –

+0

也許一個愚蠢的問題,但你可以填寫步驟#4 ?你把self.view.frame分配給它了嗎? – canhazbits

+0

我想說,這取決於你的情況。如果您希望子視圖獲取其父視圖上的所有可用空間,則可能需要使用childVC.view.frame = parentView.bounds; 在這種情況下,父視圖可能是self.view或佔位符視圖。在IB中對齊佔位符和代碼時,佔位符非常有用,只需將childVC.view連接到佔位符視圖,而無需手動計算子視圖來源和大小。 如果你喜歡,你仍然可以去childVC.view.frame = CGRectMake(...);並手動指定大小和原點。 它有助於您的情況嗎? –