2015-02-12 52 views
2

我是編程新手,請牢記這一點。我已經看過這個網站上的其他幾個問題,並嘗試了他們給出的答案,但這些都不適合我。該代碼我試圖用改變按鈕是這樣的:單擊按鈕時如何更改按鈕的文本? - 斯威夫特

@IBAction func AnswerButtonA(sender: UIButton) 
{ 
    [AnswerButtonA setTitle:@"Hello World" forState:UIControlStateNormal]; 
} 

這是爲了做到這一點,最常用的方法我已經找到,但它帶來了一些錯誤,「預期聲明」「預期的屬性名稱」「預計「」分隔符,和其他幾個人

另一件事我想,其他人則建議是:

@IBAction func AnswerButtonA(sender: UIButton) 
{ 
    AnswerButtonA.setTitle("Hello World") 
} 

這個問題,以及一些其他的東西我已經嘗試了所有彈出錯誤「」 (UIButton) - >()'沒有名爲'setTitle'的成員。

我意識到這可能是一個愚蠢的問題,但我無法弄清楚。這是我嘗試自行開發的第一個應用程序,在這個問題之前我已經做得很好。任何幫助,將不勝感激,如果你能詳細說明我做錯了什麼,那將是驚人的!

(我只想按鈕時按下它,而不是當風景被改變。)

+1

什麼是'AnswerButtonA'? – 2015-02-12 03:48:29

回答

23

在第一個問題中,您試圖在Swift文件中使用Objective-C代碼。

在你的第二個例子中,你沒有通過控制狀態。

在這兩個例子中,正如Jeremy Pope指出的那樣,您指的是AnswerButtonA作爲方法,而不是按鈕。

您需要爲您的按鈕創建一個插座(或使用,如在Jeremy的答案中)。

從這裏,這裏就是你要找的內容:

answerButtonA.setTitle("Hello World", forState: .Normal) 

方法簽名會彈出你輸入:

enter image description here

+0

謝謝這麼多!我沒有想到在閱讀的答案中能夠快速區分Objective-C,我將來一定會記住這一點!這工作完美!謝謝!! – Jaxon 2015-02-12 15:52:31

+1

很好的答案,既有資源和氣質。 – 2016-10-26 23:00:55

2

你可以試試這個

@IBOutlet answerButtonA : UIButton! 

@IBAction func answerButtonAClicked(sender: UIButton) 
{ 
    answerButtonA.setTitle("YourTitle", forState: UIControlState.Normal) 
} 

而且閱讀的學習公約迅速風格指南變量名稱和類名稱。 https://github.com/raywenderlich/swift-style-guide

+1

如果將操作設置爲發送按鈕作爲參數,則不需要爲其創建@IBOutlet。或者,如果您要使用插座,請將操作設置爲不發送任何內容。 – 2015-02-12 04:06:42

0

試試這個代碼,這肯定有助於你

@IBAction func AnswerButtonA (sender: UIButton!) 
{ 
    sender.setTitle("Hello World", forState: UIControlState.Normal) 
} 
3

被按下的按鈕正在發送一個這是一個叫做發件人的論據AnswerButtonA是你創建的方法。只是一個樣式說明,通常第一個字母是小寫的方法。再次,AnswerButtonA是單擊按鈕時調用的方法,sender是單擊的實際按鈕。

IBAction func AnswerButtonA(sender: UIButton) 
{ 
    //sender is the button that was pressed 
    sender.setTitle("HelloWorld", forState: .Normal) 
} 
0

這一個工程,以及

(sender as AnyObject).setTitle("Un-Down", for: .normal) 
相關問題