0

在我的應用程序中,我動態加載一組圖像,當用戶點擊圖像時,它會打開一個新的ViewController(MediaPreview),打開圖像的大型預覽。Bottom Bar沒有出現在presentViewController中的項目

我創建MediaPreview控制器如下:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
mediaPreviewVC = (MediaPreviewViewController *)[storyboard instantiateViewControllerWithIdentifier:@"MediaPreviewViewController"]; 
mediaPreviewVC.selectedImageURL = [NSString stringWithFormat:@"%@",gestureRecognizer.view.tag]; 
navigationController = [[UINavigationController alloc] initWithRootViewController:mediaPreviewVC]; 
[self presentViewController:navigationController animated:YES completion:nil]; 

這將創建一個視圖控制器看起來像這樣:

enter image description here

然而,底部導航欄似乎缺少,這是在我的故事板中概述:

enter image description here

如何確保底部導航欄按鈕出現在我的視圖中?

+0

'MediaPreviewVC'的'Hide Bottom Bar on Push'狀態是什麼? – Xyand 2014-09-01 20:35:42

+0

隱藏底部推杆被取消選中 – scientiffic 2014-09-01 22:45:18

回答

1

您所創建的導航控制器出整個布:

navigationController = [[UINavigationController alloc] initWithRootViewController:mediaPreviewVC]; 

alloc-init的意思是「讓我一個完全新的,獨立的,通用的一個」。因此,navigationController而不是故事板中的導航控制器。這是一個全新的,不同的導航控制器。因此,你的故事板中的內容是無關緊要的。

如果您想要故事板中的導航控制器,則需要從故事板實例化導航控制器。或者,如果您有意這樣做,那麼底欄將不可見,除非您明確地使其可見,因爲默認情況下它不是(這很明顯如何make it visible explicitly)。

但是在那種情況下,如果您打算將其從故事板中拉出來,那麼您的代碼可能是錯誤的,因爲故事板中的代碼可能已經具有正確的根視圖控制器。

+0

感謝您的回覆。如果我創建了一個新的導航控制器,爲什麼我在故事板中定義的控制器的標題(圖像預覽)仍然可以在應用程序中看到?我不知道我是否可以從故事板創建導航控制器,因爲我以編程方式生成圖像縮略圖(它們未在我的故事板中定義)。所以我不知道如何將一個segue添加到故事板中不存在的東西。 – scientiffic 2014-09-01 22:49:52

+0

哇,正如你所提到的那樣,除非明確說明底部欄不可見。添加後:[self.navigationController setToolbarHidden:NO animated:NO];問題已解決。 – scientiffic 2014-09-01 23:07:22

+0

如果回答你的問題,你可能希望接受我的答案。 - 我不明白你的其他意見是什麼意思;沒有必要「爲故事板中不存在的東西添加一個繼續」。如果您無法理解如何在呈現導航控制器的情況下以編程方式放置圖像縮略圖,則可能需要另外提出一個問題。 – matt 2014-09-01 23:39:31

相關問題