2014-06-12 85 views
0

我有一個UIStoryboard,它由4到5個ViewControllers組成。這些ViewControllers通過push segue相互連接。這個故事板沒有嵌入NavigationController裏面。模態地呈現導航控制器中的故事板

現在我必須在我的應用程序的兩種不同情況下使用這UIStoryboard

  1. UIStoryboardViewController這已經是一個NavigationController裏面,所以我可以簡單地做這樣的內側推動。

    UIStoryboard * myStoryboard = [UIStoryboard storyboardWithName:@「myStoryboard」bundle:nil]; UIViewController * vc =(UIViewController *)[myStoryboard instantiateInitialViewController]; [self.navigationController pushViewController:vc animated:YES];

這是我們正在推動一個NavigationController所以裏面的UIStoryboard進一步導航UIStoryboard'sViewControllers可以使用其中的故事板推NavigationController工作完全正常。

  • 第二種情況是,是具有模態地從一個的viewController,我可以做這樣呈現這個UIStoryBoard

    UIStoryboard * myStoryBoard = [UIStoryboard storyboardWithName:@「myStoryBoard」bundle:nil]; UIViewController * vc = [myStoryBoard instantiateInitialViewController];

    [自presentViewController:VC動畫:是完成:^ {

     }]; 
    

它成功,但現在呈現爲UIStoryboard不以任何NavigationController當我這樣做,從第一ViewController到推組合舞蹈第二ViewController崩潰的UIStoryboard內(應該)說

Could not find a navigation controller for segue. Push segues can only be used when the source controller is managed by an instance of UINavigationController.' 

燦幾類b ODY告訴我怎麼能解決這個問題,或者我如何以編程方式嵌入或刪除UIStoryboardNavigationController

回答

0

內它不會工作,因爲你正在引發從​​控制器,它是推動模態,而不是包含在導航控制器的根SEGUE 。

你可能想左右交換你的層次結構,使主要的觀點是在導航控制器是窗根視圖控制器和其他視圖控制器推模態。

實際上,你必須設置你的UIViewController作爲一個UINavigationController的根控制器(或從一個視圖控制器WIA navcontroller通過推)。要做到這一點

  1. 將一個新的導航控制器到你的故事板視圖控制器之前

  2. 右鍵單擊navgiation控制器上,而「根視圖控制器」屬性連接到您現有的視圖控制器。

  3. 從您的視圖控制器移動切入點箭頭根視圖控制器

希望這會有所幫助。

相關問題