是否可以使用变量来替换引用



VC1 有三个按钮 'Card1', 'Card2' 和 'Card3',每个按钮都指向 VC2,VC2 有四个按钮,分别带有图像 '2s'、'2h'、'2c' 和 '2d'

segue.identifiers 是 Card1、Card2、Card3

按钮"

2s"、"2h"、"2c"和"2d"都可以展开 segue,并应将原始的 segue 调用者按钮图像替换为 Images.xcassets 中的图像,命名为:"2s"、"2h"、"2c"或"2d",具体取决于在 VC2 中选择的按钮

CardSelected 标识哪个 VC2 按钮称为 unlooseSegue。

和展开 segue 标识符分别为 1、2、3、4,第 5 个"清除按钮 segue 标识符为 0。

图像在数组卡 (VC1) 中声明,展开Segue 标识符用于调用索引。

是否可以合并此代码...

按原样编辑完整代码

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),其中(X)在代码中替换为当前的"caller"

我想将 UIButton 放在数组中并从数组中调用它,但是

let CardCaller: [UIButton] = [UIButton(Card1)!, UIButton(Card2)!, UIButton(Card3)!]  //in VC1

带来错误:"VC1。类型"没有名为"Card1"的成员

当然。在目标视图控制器中cards字典。

var CardPicked = String()
var sourceMessage : NSString = ""
class ViewController: UIViewController {
    var cards = [String: String]()
}
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "Back" {
    } else {
        CardPicked = segue.identifier!
        let dvc = segue.destinationViewController as ViewController
        dvc.cards[sourceMessage] = CardPicked
    }
}

最新更新