2016-12-02 150 views
8

我能夠右鍵單擊並從我的自定義UIView子類文件拖動到連接它們的故事板元素,但無法以其他方式進行操作。我相信這是一個Xcode錯誤。有什麼我可以做的,以解決這個問題?這已經不是第一次,它已經發生並且令人討厭。無法將IBOutlet從故事板連接到UIView子類

我已經嘗試清洗並重新啓動Xcode幾次,沒有運氣。

This does not work 這不起作用(從故事板右鍵單擊斯威夫特文件)

This works 這個工作(從SWIFT文件的IBAction爲右鍵單擊以故事情節)

順便說一句,我使用的Xcode 8.1 Swift 3.0。

更新:我沒有找到關於如何連接IBOutlets/IBActions的答案,因爲正如我在上面提到的問題(以及截圖中),我已經能夠連接它們並且應用程序運行良好。問題更多的是爲什麼Xcode不會讓我連接Storyboard> Swift文件,但讓我從Swift文件> Storyboard中這樣做。如果問題有誤導性,我很抱歉。

+0

是你可以做的第一選擇UILable按Ctrl +沉渣與鼠標連接SWIFT文件,並創建IBOutlets和IBActions –

+0

建議先寫IBOutlet中,然後將其連接到相應的視圖。 –

+0

@NikhilManapure是的,工作。但反過來這樣做並不是。奇怪的是,它在我的其他ViewControllers上工作正常,只是這個特定的UIView,我無法這樣做。 –

回答

13

Xcode 8以來,我們有時也會看到此問題,並認爲這是Xcode錯誤。

作爲一種變通方法:

  • 寫出口代碼@IBOutlet weak var myUiElement: UIView!

  • 從出口
  • CTR +拖動到UI元素在故事板

+0

我有同樣的問題,但是當我做你所描述的,變量當我運行這個應用程序時,xcode顯示了這個連接,但是我認爲它並沒有真正發生,因爲這些變量是零。我使用的是xcode 9,我知道它的錯誤是地獄,但也許不支持IBOutlets在UIView子類中。 – u84six

-2

按ctrl比拖動swift文件並創建插座。

-1

1:將類分配給viewController。

2:使用Shift-Alt-Cmd-K清理項目。

3:首先退出Xcode並清除導出的數據。 打算:〜/資源庫/開發/ Xcode中/ DerivedData

+0

它是一個UIView子類,我已經做了所有沒有運氣:( –

0

檢查事項是否IBOutlet不連接:

  1. 是在故事板中定義的類?

    storyboard中選擇UIViewController,然後在屏幕的右側選擇identity inspector並分配相應的類。

  2. 您定義的插座類型是否與storyboard上的插座類型匹配? 例如,我們連接UIButton,則插座應看起來像,寫出口處的代碼,然後連接到視圖控制器:

    @IBOutlet weak var theButton: UIButton! 
    
2

創建出口像這樣在Objective-C

@property (nonatomic, weak) IBOutlet UIView *view; 

或如在迅速3

@IBOutlet weak var instruction: UILabel? 

然後連接它作爲給定的這個圖片。

enter image description here

有時連接動作和出口由於子類不工作的正常方式。這種方式適用於這種情況。

-1

另一種方式只是視圖控制器手動創建按鈕名稱,像這樣 -

@IBOutlet weak var button: UIButton! 

然後通過拖放操作將連接您的按鈕來查看顯示控制器作爲圖像[! PS: - 請清除您的派生數據。

0

嘗試了一些給定的解決方案後,終於工作是通過重新啓動我的macbook。這似乎是XCode方面的一個錯誤。好吧。

+0

即使重新啓動並沒有幫助我... – kelin

0

它的基本的,但很容易忽視。確保將拖動插座的視圖控制器連接到您創建的自定義類。

enter image description here