2011-03-06 66 views
0

有問題的應用程序是一個簡單的示例程序。在我的視圖控制器頭,我已經按鈕實例化爲例如:當從NIB加載視圖時,iPhone程序立即退出

@interface ObscurelyNamedViewController : UIViewController { 
    UIButton *yoButton; 
} 
@property(nonatomic, retain) IBOutlet UIButton *yoButton; 

- (IBAction)yoButtonPressed:(id)sender; 

yoButtonPressed:被實現爲這樣:

[yoButton setTitle: @"I said 'yo', jammit!" forState: UIControlStateNormal]; 
// repeat for other button states 
. 
. 
. 

在界面生成器,我已連接的UIButton的潤色內部事件到文件所有者ObscurelyNamedViewController中的yoButtonPressed方法來識別觸摸。作爲回報,我已將文件所有者的出口連接回yoButton,以便更新其標題。

當我構建並運行時,我沒有收到任何錯誤,但沒有顯示,應用程序立即退出。居住在IB的唯一的其他東西是UIImage視圖。我錯過了什麼,或者我錯誤地連線了什麼?

編輯:在控制檯中,我看到以下消息:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "BradiiCaliiViewController" nib but the view outlet was not set.' 
+1

當它退出時,您應該在控制檯中收到一條消息。有太多這可能是錯誤的 - 需要消息來幫助 – 2011-03-06 21:24:59

+0

再次有這個問題,但這次無法連接視圖插座。解決和張貼在這裏:http://stackoverflow.com/questions/5227332/view-outlet-not-available-to-files-owner – 2011-03-08 01:37:14

回答

0

從評論繼續前行婁佛朗哥回答:

BradiiCaliiViewController抱怨說,它沒有NIB加載甚至後視圖。您必須將文件所有者的視圖插座連接到您在BradiiCaliiViewController的XIB中的視圖。

1

這可能無關,與行動。你說,「沒有顯示,應用程序立即退出」,這意味着該操作從未發送過。

需要從控制檯的消息,但檢查

  1. 你使用initWithNibName?如果是這樣,你的名字完全正確嗎?
  2. 你是否在做任何有關Outlets的init?你不應該 - 在viewDidLoad中做。

知道在您的控制檯中的消息將幫助我們給你真正的答案。

編輯:基於您的控制檯消息

  1. 雙擊的.xib文件去IB
  2. 點擊文件擁有者
  3. 轉到連接督察
  4. 視圖出口未設置(對嗎?) - 將圓圈拖到文檔窗口中的視圖圖標上。

(我很抱歉,但我沒有IB在我面前 - 這是從內存 - 到處尋找視圖出口處連接檢查員如果我錯了有關的確切位置)

+0

啊,這可能會有所幫助...終止應用程序由於未捕獲的異常'NSInternalInconsistencyException',原因:' - [UIViewController _loadViewFromNibNamed:bundle:]加載了「BradiiCaliiViewController」筆尖,但未設置視圖插口。 – 2011-03-06 21:42:31

+2

BradiiCaliiViewController抱怨說,即使在加載NIB後它也沒有視圖。您必須將File's Owner的'view'出口連接到BradiiCaliiViewController的XIB中的視圖。 – hoha 2011-03-06 21:51:52

+0

@hoha:促進評論回答。固定在IB,並做了訣竅。 )。感謝這兩個! – 2011-03-07 00:21:44