2010-08-13 153 views
13

仍然無法弄清楚我做錯了什麼。試圖用導航控制器獲取模態視圖。模態瀏覽導航控制器

這裏是我的項目 http://www.matthewpateman.com/New.zip

誰能告訴我什麼,我做錯了什麼?我想「ShopModalView.xib」導航器彈出,但它只是diplaying一個空白頁...

+1

請評論或更新您剛纔的問題,而不是簡單地張貼另一個。 – Justin 2010-08-13 17:20:43

+0

你說得對。對不起...... – 2010-08-13 17:25:21

+6

也沒人願意下載一個潛在的惡意zip。使用http://gist.github.com/或friendpaste或其他東西來顯示相關的代碼 – 2010-08-13 17:29:14

回答

44

目前它作爲一個模式視圖,敷控制器導航控制器,可提供導航欄要添加編輯,保存箱等按鈕

ModalViewController *modalController = [[ModalViewController alloc] initWithNibName:@"ModalViewController" bundle:nil]; 
modalController.delegate = self; // Set any delegate you may have 

// This is where you wrap the view up nicely in a navigation controller 
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:modalController]; 

// You can even set the style of stuff before you show it 
navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent; 

// And now you want to present the view in a modal fashion 
[self presentModalViewController:navigationController animated:YES completion:nil]; 
+0

哇!謝謝你的幫助!這非常有幫助。真的很感謝你花時間修復它。如你所說!很好 - 很好,很簡單。 – 2010-08-13 22:56:23

+1

不是一個概率,但要確保你學到了一些經驗教訓:你在XCode中缺少一些視圖控制器的XIB文件,你錯過了一個MainWindow.xib,這就是爲什麼你得到一個'NSInternalInconsistencyException'錯誤(它有「applicationDidFinishLaunching」中沒有任何內容加載,最初也沒有辦法設置導航控制器)。您還隱藏了導航控制欄,不會顯示您的視圖何時出現。保持您的XIB的命名與處理它們的視圖控制器類相同......這是一件不需要記住的事情。 – iwasrobbed 2010-08-14 00:56:06

+0

您可能希望創建一個全新的示例項目,並且現在您可以自行設置它,以便您有一些工作要做。 XCode實際上有一個導航控制器模板,如果你知道從一開始你就會使用它(XCode - > New project - > iPhone OS application - > Navigation based app - > uncheck「Use core data for storage」) – iwasrobbed 2010-08-14 00:59:01

3
ShopModalViewController *shopMVC = [[ShopModalViewController alloc] initWithNibName:@"ShopModalViewController" bundle:nil]; 
//set properties 
UINavigationContrller *navCon = [[UINavigationController alloc] initWithRootViewController:shopMVC]; 
[self presentModalViewController:navCon animated:YES]; 
[shopMVC release]; 
[navCon release]; 
+0

我用你的代碼,但它給了我這個錯誤信息: 2010-08-13 19:55:54.718導航[95599:207] ***終止應用程序由於未捕獲的異常'NSInternalInconsistencyException',原因:'無法在包中加載NIB: – 2010-08-13 18:57:23

2

對於那些想要做到這一點斯威夫特3.X:

// Obtain your viewcontroller 
let viewController = ... 

// Initialize a navigation controller, with your view controller as its root 
let navigationController = UINavigationController(rootViewController: viewController) 
navigationController.navigationBar.barStyle = .blackTranslucent 

// Present it modally from the current controller 
present(navigationController, animated: true, completion: nil) 
+0

謝謝,它適用於我正在尋找的內容。 – Hoan 2017-12-17 01:49:58