私はプログラミングに不慣れなので、それを覚えておいてください。私はこのサイトで他のいくつかの質問を見て、彼らが与えた答えを試しましたが、それらは私にとってはうまくいきませんでした。ボタンをに変更するために使用しようとしているコードは次のとおりです。
@IBAction func AnswerButtonA(sender: UIButton)
{
[AnswerButtonA setTitle:@"Hello World" forState:UIControlStateNormal];
}
これは私が見つけたこれを行うための最も一般的な方法ですが、いくつかのエラー「予期される宣言」「期待される属性名」「期待される」、「セパレータ」などが発生します。
私が試したもう1つのことは、他の人が提案したことです。
@IBAction func AnswerButtonA(sender: UIButton)
{
AnswerButtonA.setTitle("Hello World")
}
これと私が試した他のいくつかのことはすべてエラーを引き起こします "'(UIButton)->()'には 'setTitle'という名前のメンバーがありません。
これはばかげた質問かもしれませんが、理解できません。これは私が自分で開発しようとした最初のアプリであり、この問題が発生するまでうまくいきました。どんな助けでもありがたいです、そしてあなたが私が間違っていることについて詳細に入ることができればそれは素晴らしいでしょう!
(ビューがロードされたときではなく、ボタンが押されたときにのみボタンを変更したい。)
最初の質問では、SwiftファイルでObjective-Cコードを使用しようとしています。
2番目の例では、制御状態を渡していません。
どちらの場合も、ジェレミーポープが指摘しているように、ボタンではなく、メソッドとしてAnswerButtonA
を参照しています。
ボタンへのコンセントを作成する必要があります(または、ジェレミーの回答のようにsender
を使用します)。
そこから、あなたが探しているものは次のとおりです。
answerButtonA.setTitle("Hello World", forState: .Normal)
入力中にメソッドシグネチャがポップアップ表示されます。
押されているボタンは、senderと呼ばれる引数として送信されています。 AnswerButtonAは、作成したメソッドです。単なるスタイルノートです。通常、メソッドの最初の文字は小文字です。繰り返しになりますが、AnswerButtonAはボタンをクリックしたときに呼び出されるメソッドであり、senderは実際にクリックされたボタンです。
IBAction func AnswerButtonA(sender: UIButton)
{
//sender is the button that was pressed
sender.setTitle("HelloWorld", forState: .Normal)
}
あなたはこれを試すことができます
@IBOutlet answerButtonA : UIButton!
@IBAction func answerButtonAClicked(sender: UIButton)
{
answerButtonA.setTitle("YourTitle", forState: UIControlState.Normal)
}
変数名とクラス名の規則を学習するためのSwiftスタイルガイド)もお読みください。 https://github.com/raywenderlich/Swift-style-guide
このコードを試してください、これは間違いなくあなたを助けます
@IBAction func AnswerButtonA (sender: UIButton!)
{
sender.setTitle("Hello World", forState: UIControlState.Normal)
}
これも動作します
(sender as AnyObject).setTitle("Un-Down", for: .normal)
sender.title = "my text here"
xcode9.3.1の場合