2016-09-16 42 views
0

在我的項目中,我想顯示一個彈出窗口,並在.xib文件中定義此彈出窗口的視圖。 要做到這一點我使用這行代碼:Swift錯誤帶xib文件的IBOutlet

myPopupView = NSBundle.mainBundle().loadNibNamed("NibView", owner: self, options: nil)[0] as! UIView 

在此之前,它的工作原理。但問題是當我嘗試添加IBOutlet時。我的Xib文件連接到一個uiviewcollection,並且我設法在012b上創建一個IBOutlet,我在xib文件中。但現在我再次運行我的應用程序,我有這個着名的消息: 這個類是不符合密鑰編碼密鑰的關鍵值...

因此,如果我在互聯網上看,大家說刪除IBOutlet通過點擊在檢查員的十字按鈕上,但我不想刪除它,因爲我需要這個IBOutlet。所以不可能將IBOutlet放在xib文件中?

謝謝:)

回答

1

這是很常見的錯誤,這意味着IBOutlet你在的.xib採取不連接到相關的類。我遇到這樣的錯誤時,我已經採取了一個插座,並給出了一些名稱,如lblUserName,但後來我將其重命名爲lblFriendName,那麼xib中的標籤仍然連接到lblUserName以及lblFriendName,因此在編譯xib時找不到lblUserName的連接並拋出錯誤。

所以去你的xib,右鍵點擊xib的插座,然後你會看到十字按鈕斷開連接。因此請斷開連接並重新連接。

在此期間,您還可以看到連接名稱,它必須是錯誤的名稱,否則會出現兩個連接對應的標籤,其中一個是正確的,另一個必須是錯誤的(將此連接重命名爲我解釋)

希望你能理解,它可以幫助...

快樂編碼...

+0

你的解釋是非常明確的,但不幸的是它仍然無法正常工作,即使我已經嘗試了很多時間斷開插座並連接新插座。但我也許看到了這個問題。實際上,完整的錯誤消息是:[ setValue:forUndefinedKey:]:此類不是鍵值btnCreate的符合編碼的標準...但此XIB文件的Controller名稱不是ProjectsController,但是NewProject ....是否有可能xib文件連接到錯誤的控制器?但在Inspector中,我定義了一個好的 – Adz

+0

如果您可以描述連接並顯示連接的圖形視圖,那麼它可以幫助我快速找到問題。 – Janmenjaya

+0

如果您已經從某個其他項目複製了xib,那麼該xib會指向錯誤的連接,因爲它不在那裏。根據你所描述的評論,btnCreate的連接有問題。 – Janmenjaya