2015-07-05 27 views
-2

我想動態更改基於隨機選擇的按鈕的標題。 我收到錯誤;使用變量來快速設置按鈕的標題

'String' does not have a member named 'setTitle' 

我認爲這正在發生,因爲變量沒有被公認的「按鈕」我想更新的標題,我只是不知道如何解決它。 我試圖做類型的UIButton的陣列,但這似乎沒有什麼區別是在產生

var choicesArray = Array(["choiceOne", "choiceTwo", "choiceThree", "choiceFour"]) 
var randomChoice = Int(arc4random_uniform(5)) 

@IBOutlet weak var choiceOne: UIButton! 
@IBOutlet weak var choiceTwo: UIButton! 
@IBOutlet weak var choiceThree: UIButton! 
@IBOutlet weak var choiceFour: UIButton! 

func setLabels() { 
    var timesTable = toPass.toInt() 
    var answer = timesTable! * multiplier 
    var randomChoiceTitle = choicesArray[randomChoice] 
    randomChoiceTitle.setTitle(String(answer), forState: UIControlState.Normal) 

錯誤;

randomChoiceTitle.setTitle 
+0

哪些錯誤?告訴我們,你想要一個答案。 – gnasher729

+0

choicesArray包含四個字符串。字符串不響應setTitle。 – gnasher729

回答

0
var choicesArray: [UIButton]! { 
    get { 
     return [choiceOne, choiceTwo, choiceThree, choiceFour] 
    } 
} 
0

陣列choicesArray必須包含UIButton的引用,而不是文字串

@IBOutlet weak var choiceOne: UIButton! 
@IBOutlet weak var choiceTwo: UIButton! 
@IBOutlet weak var choiceThree: UIButton! 
@IBOutlet weak var choiceFour: UIButton! 

let choicesArray = [choiceOne, choiceTwo, choiceThree, choiceFour] 
var randomChoice = Int(arc4random_uniform(5)) 

func setLabels() { 
    var timesTable = toPass.toInt() 
    var answer = timesTable! * multiplier 
    let randomButton = choicesArray[randomChoice] 
    randomButton.setTitle(String(answer), forState: .Normal) 
0

choiceArray應該有按鈕的引用,然後你可以改變buttons..change的稱號選擇數組到包含按鈕的數組。

@IBOutlet weak var choiceOne: UIButton! 
@IBOutlet weak var choiceTwo: UIButton! 
@IBOutlet weak var choiceThree: UIButton! 
@IBOutlet weak var choiceFour: UIButton! 

//choicearray containing the buttons 1-4 
let choicesArray = [choiceOne, choiceTwo, choiceThree, choiceFour] 
var randomChoice = Int(arc4random_uniform(5)) 

func setLabels() { 
    var timesTable = toPass.toInt() 
    var answer = timesTable! * multiplier 
    var randomChoiceTitle = choicesArray[randomChoice] 
    randomChoiceTitle.setTitle(String(answer), forState: UIControlState.Normal) 
} 
0

這是您的完整的工作代碼:

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var choiceOne: UIButton! 
    @IBOutlet weak var choiceTwo: UIButton! 
    @IBOutlet weak var choiceThree: UIButton! 
    @IBOutlet weak var choiceFour: UIButton! 

    var choicesArray = [UIButton]() //Create a button type array 
    let toPass = "1" 
    let multiplier = 0 
    let randomChoice = Int(arc4random_uniform(4)) //Change this to 4 because you array have 0 to 3 elements 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     println(randomChoice) 
     choicesArray = [choiceOne, choiceTwo, choiceThree, choiceFour] //add buttons into your array. 
     setLabels() 

    } 

    func setLabels() { 
     var timesTable = toPass.toInt() 
     var answer = timesTable! * multiplier 
     var randomChoiceTitle = choicesArray[randomChoice] 
     randomChoiceTitle.setTitle(String(answer), forState: UIControlState.Normal) 
    } 
}