2017-02-20 32 views
0

在我以前認爲這真的很微不足道......但現在我似乎無法做到這一點。我曾經創建過多個按鈕,更改它們各自的標籤,然後創建一個IBAction,它會被我的所有按鈕調用!將相同的IBAction添加到多個按鈕。最新的Xcode,swift 3,iOS 10

但是,這是前一陣子。現在我正在嘗試做同樣的事情,但似乎沒有奏效。無論我做什麼,我的IBAction似乎都只與一個按鈕相關,並且不會被其他任何按鈕觸發。

我想:

@IBAction func myAction(sender: UIButton) { } 
@IBAction func myAction(_ sender: UIButton) { } 
@IBAction func myAction(_ sender: Any) { } 

和無那些作品。這是一個錯誤?有沒有新的方法來做到這一點?我是否被迫爲每個按鈕創建單獨的操作,儘管每個按鈕的功能都非常熟悉?

我GOOGLE了,我不能只是使這個工作大聲笑,也許有一些我現在失蹤了。

+0

@dfd我這樣做,通過故事板。不同簽名的方法只是嘗試不同的事情,就像其他一些帖子所建議的那樣。實際上沒有真正的代碼,我只是想將其作爲print(sender.tag)進行測試,但只有一個按鈕會觸發此IBAction。 –

+0

爲您的按鈕添加標籤值 – karthikeyan

回答

0

這是Xcode中的一個錯誤。希望蘋果很快就會修復它的錯誤。

當你從按鈕拖動IBAction爲默認簽名看起來像

@IBAction func meHere(_ sender: Any) { 
    //something here 
} 

現在,如果你添加一個按鈕,並嘗試設置相同的IBAction爲到按鈕,它不會允許(只有蘋果知道爲什麼,雖然)

解決方案:

更改方法簽名

@IBAction func meHere(_ sender: UIButton) { 
} 

更改任何具體的UIComponent。現在,控制從IBAction爲拖動到新的按鈕,一切都會好起來:)

enter image description here 正如你可以看到我和你按鈕鉤住相同的IBAction爲:)

enter image description here 快樂編碼

+0

This!我已經試過這個,但沒有工作,但是,我從第一個想象中發現你發佈了,我最終可以將聽衆拖到按鈕。我認爲,需要從小(+)號拖曳,這是多麼的痛苦。這麼小的細節大聲笑。 –

+0

@ fabian-vergara:hahahaha :)很高興你能解決你的問題:) –

0

更改@IBAction FUNC myAction(_發件人:任意){}到

@IBAction func myAction(_ sender: AnyObject) { } 

所以,你可以鏈接任何按鈕,一個單一的IBAction爲方法。

(控制+拖動按鈕「myAction」方法在助理編輯體)

相關問題