2015-11-22 37 views
-2

我已搜索周圍,但還沒有找到答案。這可能很簡單,但我可以也不知道你是如何被要求做到的。所以...使用標籤顯示按鈕上的數組內容

我想要一個按鈕在標籤上顯示數組。當我第一次按下時,標籤顯示數組中的第一個數字,第二次按下使標籤打印數組中的第二個數字。

var primeString = ["60","52","81","61","85"] 
@IBOutlet var PrimeLabel: UILabel! 

@IBAction func NewAction(sender: AnyObject) { 
    // Here is where I want to make the label show the array in the order when I press it. 
} 
+1

你想要什麼時,按下按鈕發生,我們已經顯示數組中的最後一個字符串?你到目前爲止嘗試過什麼? – nhgrif

回答

0

所以只是爲了弄清楚這一點。每次按下按鈕時,都希望通過標籤顯示數組中的下一個元素。好的,這應該相當簡單。像下面的東西會爲你做。

var primeString = ["60","52","81","61","85"] 
var currentElement = 0 

@IBOutlet var PrimeLabel: UILabel! 

@IBAction func NewAction(sender: AnyObject) { 
    if currentElement < primeString.count { 
     PrimeLabel.text = primeString[currentElement] 
     currentElement++ 
    } else { 
     print("No more elements to display.") 
    } 
} 

沒有必要讓視圖加載,因爲視圖加載後我們不需要做任何設置。我希望這能夠幫到你。

1

聲明一個變量count並初始化爲按鈕單擊0

var primeString = ["60","52","81","61","85"] 
var count = 0 
@IBOutlet var PrimeLabel: UILabel! 

然後再採取行動。

@IBAction func NewAction(sender: AnyObject) { 
    PrimeLabel.text = primeString[count%primeString.count] 
    count++ 
} 
+0

'count%primeString.count'會將頭重置爲數組的開始 – sasquatch

0

爲什麼不使用Generator這個?

E.g.是這樣的:

var primeStringGenerator = ["60","52","81","61","85"].generate() 
@IBOutlet var PrimeLabel: UILabel! 

@IBAction func NewAction(sender: AnyObject) { 
    PrimeLabel.text = primeGenerator.next() ?? "n/a" 
} 
0
var primeString = ["60","52","81","61","85"] 
@IBOutlet var PrimeLabel: UILabel! 
var number = 0 

@IBAction func NewAction(sender: AnyObject) { 
     PrimeLabel.text = primeString[i] 
     i++ 
}