2011-05-13 43 views
3

我的View在我的XIB中有一個按鈕myButton。在XIB文件的所有者是類HelloWorldViewController。文件所有者的視圖是我在XIB中的View無法獲取按鈕來呼叫控制器代碼iPhone 4

HelloWorldViewController(它駐留在MainWindow.XIB中)我有- (IBAction) doMyButton:(id)sender,我在HelloWorldViewController.h文件中有相應的定義。

對於我的視圖我有事件(再次在XIB中)Touch Up Inside - >文件的所有者doMyButton。
對於文件的所有者我已收到操作doMyButton - >圓角矩形按鈕觸及內部。

我在'doMyButton'方法內的第一行代碼有一個調試點。當我觸摸按鈕(在模擬器中使用我的鼠標)時,我不會碰到我的中斷點。

WTF? IB的

屏幕捕獲,如果有幫助:
Overview
Properties Of Button

+0

沒有任何人的樣本代碼或項目可以幫助您。還*非常*具體的問題 - 沒有任何人會發現有用(到本地)。 – jkp 2011-05-13 16:37:43

+1

@jkp:這不是一個值得關注的問題。這種問題實際上在iPhone開發中非常常見,這是Xcode和Interface Builder之間缺乏集成的令人驚訝的結果。由於這是Xcode/IB問題,因此無法爲此發佈任何代碼。 – MusiGenesis 2011-05-13 16:43:07

+0

@MusiGenesis:我不同意它不可能發佈任何代碼 - 敲一個顯示項目的示例項目,將其發佈到Dropbox並鏈接到它。一半時間製作一個示例項目,您將解決問題。否則,這裏沒有足夠的細節。 – jkp 2011-05-13 16:48:05

回答

0

感謝同事,我發現問題所在。我使用該按鈕的視圖是在我的HelloWorldViewController.xib中,因爲它應該是。但是,我已經將該視圖放入Main.xib中作爲我設置的NavController的主視圖。我正在編輯HelloWorldViewController.xib中的視圖,當我在Main.xib中編輯(讀取:建立連接)時,NavController中的視圖被複制。

我認爲NavController只是簡單地指向我原來的視圖定義的其他XIB,而不是運行它的副本。一種混亂的新視角。

1

如果每一件事情是好的,那麼你不設置斷點,即您使用CMD + R使用CMD + y或運行代碼CMD +輸入。 cmd + r將運行而不考慮你的斷點。

+1

在Xcode 4下,Cmd-R的「運行」通常是可調試的,除非你不想自己做出來。 – 2011-05-13 17:18:22

+0

我想要開始調試的線上有藍色指針。我點擊Xcode頂部的「Build and Debug」。我使用Xcode 3.2.6。我想我已經通過這種方式進行調試了。 – Justin 2011-05-13 17:34:13

+0

buil的左側有一個按鈕,Debug是否被按下?如果沒有,然後按它...再一件事情把nslog在那裏,並檢查控制是否到達那裏... – 2011-05-13 17:36:09

0

是否有任何IBOutlet項目的功能?

如果他們不這樣做(因爲你改名爲你的XIB文件),請確保File's Owner已在界面生成器設置正確的自定義類。否則,它可能會調用錯誤的類,這可能是你的突破點不能觸發的原因。

注意:這不太可能,因爲這樣的問題應該會導致構建問題,但我已經看到了陌生的事情發生。

+0

HelloWorldViewController.xib擁有類HelloWorldViewController的文件所有者。哪個是我的方法是按鈕的地方。我不相信我有任何其他'IBOutlet'的東西在那裏。作爲一個新手,你偷看我的好奇心是否應該有更多的IBOutlet? (更多牛鈴?)。 – Justin 2011-05-13 18:05:12

+0

雖然我一直是更多cowbell的粉絲,但你只需要一個'IBOutlet'來爲每個希望你的代碼與之交互的XIB項目。如果你有一個永遠不會改變的'UILabel',它不需要'IBOutlet'。如果你想讓你的代碼根據某個值更改'UILabel'文本,那麼你需要一個'IBOutlet'。 – dredful 2011-05-13 18:45:52