如何确定UIButton被按下了?

时间:2016-09-13 09:42:46

标签: ios arrays swift uibutton

我正在尝试为我的孩子制作一个简单的应用程序。

下一步是

  1. 检测UIButton被按下的内容。
  2. 为空数组分配特定数组的值 按钮
  3. 我现在有两个按钮(完全会有20 +)

    @IBAction func tapLA(sender: UIButton) {
    }
    
    @IBAction func tapLB(sender: UIButton) {
    }
    

    它们都与具有图像数组的PageViewController相关联

    // the array
    private var contentImages = ["",
                                 "",
                                 "",
                                 ""]
    
    //the array of gallery images lettera A
    private let contentImagesA = ["letteraA",
                                  "ape",
                                  "albero",
                                  "arcobaleno"]
    
    
    // the array of gallery immages lettera B
    private let contentImagesB = ["letteraB",
                                  "barca",
                                  "balena",
                                  "banana"]
    

    我需要根据点击的按钮显示不同的数组,但我不知道该怎么做。 可怜的话应该是:

    如果按下按钮A,则显示阵列A的图像

    如果按下按钮B,则显示阵列B的图像。

3 个答案:

答案 0 :(得分:1)

选择按钮时,请运行加载图片的方法

string

答案 1 :(得分:1)

您也可以遵循以下方法: 在第一个控制器中定义所有数组。

 // define globally
   var imageDictinary = Dictionary<Int, Array<String>>()
   var imageArray:[String] = Array()

在您的viewDidLoad或初始化方法

imageDictinary = [1:["letteraA","ape","albero","arcobaleno"],
                  2:["letteraB","barca","balena","banana"],
                  // and so on..
                  ]

添加标签从1到26的按钮(字典中的数组号)。将onButtonClick方法分配给所有按钮操作。

@IBAction func onButtonClick(sender: UIButton) {
    let images:Array = imageDictinary[sender.tag]!;
     imageArray = images
     openPageController()
 }

 openPageController(){
    // open page controller here programatically
    }

 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        let page:PageViewController  = segue.destinationViewController as! PageViewController
        page.images = imageArray
    }

在这里,您只需编写用于打开pageController到一个按钮Action的代码。用seague打开它。

每次单击特定按钮时,其相应的数组都将分配给imageArray,您可以在代码中使用它。

快乐编码:)

答案 2 :(得分:0)

执行此操作的一种方法是使用包含数组作为值的Dictionary,然后使用某种键的ID(您可以在Swift here中详细了解dictionaries)< / p>

所以你可以这样做:

let content = ["buttonA" : ["letteraA",
                            "ape",
                            "albero",
                            "arcobaleno"],
               "buttonB" : ["letteraB",
                            "barca",
                            "balena",
                            "banana"]]

在你的&#34;按钮操作&#34;中,你将从键中获取正确的数组,然后调用一个方法,该方法可以做任何你想要对该数组进行的操作:

@IBAction func tapLA(sender: UIButton) {
   if let aArray = content["buttonA"] {
       populateAndDoYourMagicHere(withArray: bArray)
   }
}

@IBAction func tapLB(sender: UIButton) {
   if let bArray = content["buttonB"] {
       populateAndDoYourMagicHere(withArray: bArray)
   }
}

func populateAndDoYourMagicHere(withArray array: [String]) {
       contentImages = array
       //do your magic here
}

希望这有意义并帮助你。