2016-12-16 25 views
0

我有UIButtons的出口集合:嵌套在迅速3循環爲uibuttons標題

@IBOutlet var categoriesButtonLabels: [UIButton]! 

每個按鈕具有不同的標籤(在故事板中設置)。

我想改變他們的標題填充字符串數組(我從我的FireBase數據庫中檢索我的代碼中的其他地方)。

我想是這樣的:

override func viewDidLoad() { 
    super.viewDidLoad() 
// Setting Category buttons labels 
    for button in categoriesButtonLabels { 
     for i in categories { 
      button.setTitle("\(i)", for: .normal) 
     } 
    } 
} 

,但它變得只是類別數組的最後一個值,並設置標題相同的所有按鈕... 我在做什麼錯?

爲了完整起見: 這是我的類別陣列:

for (index, value) in categories.enumerated() { 
print("\(index) = \(value)") 
} 

和出口集合:

for (index, value) in categoriesButtonLabels.enumerated() { 
print("\(index) = \(value)") 
} 

輸出:

categories string array is:0 = sports categories string array is:1 = science categories string array is:2 = movies categories string array is:3 = music categories string array is:4 = history

Outlet UIButtons Collection is:0 = > Outlet UIButtons Collection is:1 = > Outlet UIButtons Collection is:2 = > Outlet UIButtons Collection is:3 = > Outlet UIButtons Collection is:4 = >

回答

1

卸下內部循環:

for (i, button) in categoriesButtonLabels.enumerated() { 
    button.setTitle("\(categories[i])", for: .normal) 
} 
+0

謝謝,但我失去了一些東西......如果我刪除內部循環,你會得到[i]類別? – Alex

+0

其實我的小姐。查看更新回答 –

+0

致命錯誤:索引超出範圍 (lldb)。 這是超級奇怪的,因爲我的類別數組已正確填充 – Alex