是否可以制作UIButton
s?
let buttonArray: [UIButton] = [UIButton(Button1)!, UIButton(Button2)!, UIButton(Button3)!]
稍后提及
buttonArray[0].setImage(UIImage, forState: UIControlState.Normal)
或以某种方式设置
var button = UIButton.whoseName = "Specific String"
button.setImage(UIImage, forState: UIControlState.Normal)
VC1:
import UIKit
class VC1: UIViewController {
@IBOutlet weak var Card1: UIButton!
@IBOutlet weak var Card2: UIButton!
@IBOutlet weak var Card3: UIButton!
let Cards: [UIImage] = [UIImage(named: "Default")!, UIImage(named: "2s")!,UIImage(named: "2h")!,UIImage(named: "2c")!,UIImage(named: "2d")!,]
// var CardCaller: Array<UIButton> = [Card1, Card2, Card3]
let CardCallers: [UIButton] = [Card1, Card2, Card3] //ERROR: 'VC1.Type' does not have a member named 'Card1'
var caller = ""
var Index2 = Int()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let KVC = segue.destinationViewController as VC2
KVC.source = segue.identifier!
}
@IBAction func unwind(unwindSegue: UIStoryboardSegue){
//Card1.setImage(Cards[Index2], forState: UIControlState.Normal)
//let button = UIButton(named: "Card1")!
if caller == "Card1" {Card1.setImage(Cards[Index2], forState: UIControlState.Normal)} else if caller == "Card2" {Card2.setImage(Cards[Index2], forState: UIControlState.Normal)} else if caller == "Card3" {Card3.setImage(Cards[Index2], forState: UIControlState.Normal)}
}
@IBAction func text(sender: AnyObject) {
println(caller)
println(Index2)
}
}
IBOutlets
正确连接到Storyboard按钮;我通过控制/拖动来创建它们到视图控制器。
答案 0 :(得分:0)
你可以。
两种方法:
var buttonsArray: Array<UIButton> = [button1, button2]
或者
@IBOutlet var buttonsArray: Array<UIButton> = []
对于后者,它可以从故事板填充为IBOutletCollection
请注意,可以同时将视图分配给IBOutlet
和IBOutletCollection
。
答案 1 :(得分:0)
这不应该是一个问题,但它可能与您访问按钮时有关。尝试全局创建数组,并在加载后添加按钮:
class VC1: UIViewController {
@IBOutlet weak var Card1: UIButton!
@IBOutlet weak var Card2: UIButton!
@IBOutlet weak var Card3: UIButton!
var CardCallers: [UIButton] = [UIButton]() // Empty UIButton array
override func viewDidLoad() {
self.CardCallers = [self.Card1, self.Card2, self.Card3] // Buttons have now loaded in the view
}
}