VC1 имеет три кнопки «Card1», «Card2» и «Card3», каждый из которых переходит в VC2, который имеет четыре кнопки с изображениями «2s», «2h», 2с»и '2d'Возможно ли использовать переменную для замены ссылки
segue.identifiers являются Card1, Card2, Card3
кнопки '2s', '2h', '2c' и '2d' все размотки и переход должен заменить кнопку оригинальный Segue-абоненте изображение с изображением из Images.xcassets имени: «2с», «2h», «2c» или «2d» согласно кнопка, которая выбрана в VC2
CardSelected идентифицирует, какая кнопка VC2 под названием Unwin dSegue.
и развлечений SEGUE-идентификаторы 1, 2, 3, 4, соответственно, с 5-го «ясно, кнопка Segue-идентификатор в 0.
изображения объявлены в карты массива (VC1) и unwindSegue идентификатора используется для вызовите индекс.
можно ли закрепить этот код ...
EDIT ПОЛНЫЙ кОД КАК ЕСТЬ
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 (карты [index2], Форстате: UIControlState.Normal), как (X) .setImage (Карты [Index2], forState: UIControlState.Normal), где (X) заменяется кодом с текущим «вызывающим»
Я думал разместить UIButtons в массиве и называть его f ром массив, но
let CardCaller: [UIButton] = [UIButton(Card1)!, UIButton(Card2)!, UIButton(Card3)!] //in VC1
приносит ошибку: 'VC1.Type' не есть член с именем '' CARD1
http://stackoverflow.com/questions/28955620/array-of-uibuttons-or-method-uibuttonnamed-string Использование массива решить переменную – Dustin