2015-09-02 42 views
1

我添加了一個導航控制器到我的故事板沒有出現,它看起來像這樣:Xcode的6 - 增加了導航控制器到故事情節,但在應用

enter image description here

現在在表視圖控制器,我給了TableViewController故事板ID和類TableViewController控制器

當我運行我的應用程序時,我沒有看到頂部的導航欄。這非常令人沮喪,無法在任何地方找到解決方案。請幫助

要到現場,有人點擊一個按鈕,這個代碼運行,它關係到我的表視圖控制器:

UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil]; 

       LHFileBrowser *LHFileBrowser = [storyBoard instantiateViewControllerWithIdentifier:@"FileBrowser"]; 
       [self.navigationController pushViewController:LHFileBrowser animated:YES]; 
       [self presentViewController:LHFileBrowser animated:YES completion:nil]; 
+0

您是否將導航控制器設置爲初始視圖控制器? –

+0

試過,仍然沒有導航控制器在頂部 – user979331

+0

我檢查了框'初始視圖控制器' – user979331

回答

2

的錯誤是在你的代碼。

如果您希望(模態)在用戶按下按鈕時呈現視圖控制器,則需要顯示導航控制器(其中將包含表視圖控制器),而不是表視圖控制器本身。

現在,您將呈現視圖控制器,該視圖控制器不會將其顯示爲嵌入導航控制器中。

另外,通過嘗試將視圖控制器推入導航控制器堆棧並呈現視圖控制器,您正在混合使用兩種不同的方法。

代碼示例:

這裏就是你的意思顯然做:

UIStoryboard *storyboard = self.storyboard; 
UINavigationController *navigationController = [storyboard instantiateViewControllerWithIdentifier:@"MyNavigationControllerID"]; 
LHFileBrowser *rootViewController = [navigationController topViewController]; 

// Configure your LHFileBrowser view controller here. 
rootViewController.someProperty = ...; 

// Modally present the embedded view controller 
[self presentViewController:navigationController animated:YES completion:nil]; 

如果要更改演示文稿或過渡的風格,你可以設置你的故事板這些細節。

你沒有解釋爲什麼你必須以編程方式添加按鈕,但Storyboard segues會實例化併爲您呈現嵌入式視圖控制器,而無需您在代碼中完成。

在Storyboard中可以做的越多,您需要維護,支持和更新的代碼就越少,並且在新SDK發佈時,您的應用程序仍然可以正常工作的可能性就越大。

更新:

更好的方法做,這是爲了讓故事板爲你做它,從按鈕到您想要呈現導航控制器添加SEGUE。

+0

按鈕是以編程方式創建的 – user979331

+0

我用示例代碼更新了我的答案。這並不完整,因爲您沒有提供有關按鈕的詳細信息。如果您還在橫向上支持iPad或iPhone 6 Plus,則需要將popoverPresentationController連接到按鈕。 –

相關問題