【发布时间】:2015-03-06 20:01:02
【问题描述】:
VC1 有 'Card1'、'Card2' 和 'Card3' 三个按钮,每个都与 VC2 有四个按钮,分别是图像 '2s'、'2h'、'2c' 和 '2d'
segue.identifiers 是 Card1、Card2、Card3
按钮 '2s', '2h', '2c' 和 '2d' 都展开 segue 并且应该将原始 segue-caller 按钮图像替换为来自 Images.xcassets 的图像,名称为:'2s'、'2h'、'2c'或 '2d' 根据在 VC2 中选择的按钮
CardSelected 标识哪个 VC2 按钮称为 unwindSegue。
和 unwind segue-identifiers 分别为 1、2、3、4,第 5 个“清除按钮 segue-identifier 为 0”。
图像在数组 Cards (VC1) 中声明,unwindSegue-identifier 用于调用索引。
是否可以合并这段代码...
按原样编辑完整代码
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 caller = ""
var Index2 = Int()
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)
//I want to replace Card1.setImage with (UIButton with name = "caller").setImage
//instead of having
//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)
}
}
VC2
import UIKit
class VC2: UIViewController {
var CardSelected = ""
var source = ""
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
CardSelected = segue.identifier!
var Index:Int = CardSelected.toInt()!
let DVC = segue.destinationViewController as VC1
DVC.caller = source
DVC.Index2 = Index
}
}
在 VC1 中,我想以某种方式将 Card1.setImage(Cards[Index2], forState: UIControlState.Normal) 设为 (X).setImage(Cards[Index2], forState: UIControlState.Normal) where (X ) 在代码中替换为当前的“调用者”
我想将 UIButtons 放在一个数组中并从数组中调用它,但是
let CardCaller: [UIButton] = [UIButton(Card1)!, UIButton(Card2)!, UIButton(Card3)!] //in VC1
带来错误:“VC1.Type”没有名为“Card1”的成员
【问题讨论】: