2012-01-01 92 views
1

我正在與本書開始iPhone 3開發一起工作,並且遇到了「採摘」應用程序中的一些問題。我使用的是Xcode 4.2,並且我將它設置爲完全像它們在源代碼中設置的一樣。所有的代碼都是一樣的,所有的插座連接都是一樣的。但是,當我運行我的版本時,它會啓動一個黑屏,調試器顯示「應用程序在應用程序啓動結束時應該有一個根視圖控制器。」根視圖控制器錯誤

在源代碼中的版本運行得很好,而且我的外觀與它完全相同,但由於某些原因,我的系統無法運行。我在谷歌搜索這個問題,人們有一堆的解決方法,但我覺得在IB中有一些非常簡單的東西,我沒有看到。

任何幫助將是偉大的,謝謝。

回答

0

您是否擁有RootViewControllers XIB文件?它是連接到RootViewController類(在設計器中)

+0

我很確定我做到了,對不起,我還是很新的。我在「iPhone Window」的nib中創建了標籤欄,並在Tab Bar Controller和App Delegate之間建立了「rootController」連接,就像他們在工作版本中一樣。 – John 2012-01-01 03:11:23

+0

編輯:Ehm你確定你在創建項目時選擇了基於TabBar的應用嗎?嗯..但錯誤說,沒有一個根視圖控制器。 – Dion 2012-01-01 03:16:22

+0

哦,不,我沒有選擇,我選擇了「空」選項,這可能是我的問題。我現在要試一試,謝謝。 – John 2012-01-01 03:24:39

2

iPhone 3書可能讓你添加視圖控制器的視圖作爲窗口的子視圖,是否正確?那麼,從iOS 4開始,UIWindow現在具有rootViewController屬性,並將此屬性設置爲初始視圖控制器,現在是在屏幕上獲取第一個視圖控制器的首選方式。

基本上替換您的應用程序委託這樣的事情在-application:didFinishLaunchingWithOptions: ...

[self.window addSubview:viewController.view];

這... ...

self.window.rootViewController = viewController;

因爲iPhone OS 3相當多的改變;當您繼續閱讀本書時,請當心。

+0

謝謝馬克。不幸的是,我沒有找到'[self.window addSubview:viewController.view];'而是我的代碼如下所示:\t'[window addSubview:rootController.view];' '[window makeKeyAndVisible];' – John 2012-01-01 03:38:43

+0

我以'viewController'爲例。這將適用於你的任何根視圖控制器恰好被調用。 – 2012-01-01 03:41:05

+0

Alrighty,非常感謝您的幫助Mark。我將嘗試弄清楚我的根視圖控制器是什麼,並從那裏開始,我仍然是一個小菜鳥,但是感謝您指引我朝着正確的方向前進。 – John 2012-01-01 04:30:08