2016-12-16 48 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