Swift 方法为UIButton调用发送方

Swift 方法为UIButton调用发送方,swift,cocoa-touch,uibutton,segue,sender,Swift,Cocoa Touch,Uibutton,Segue,Sender,因此,我在页面上有一堆按钮,并将它们排序为[UIButton]类型的数组,称为buttonsArray 当您单击其中一个按钮时,我将其操作绑定到goToFacts功能,该功能与我的segue“goToFactSegue”一起使用,并将哪个按钮(发送者)的信息传递给我的prepare for segue功能。我的prepareforSegue函数确认segue标识符是正确的,然后在DetailViewController页面上将变量索引设置为正确的数字。我计算设置索引的正确数字(称为whichIn

因此,我在页面上有一堆按钮,并将它们排序为[UIButton]类型的数组,称为buttonsArray

当您单击其中一个按钮时,我将其操作绑定到goToFacts功能,该功能与我的segue“goToFactSegue”一起使用,并将哪个按钮(发送者)的信息传递给我的prepare for segue功能。我的prepareforSegue函数确认segue标识符是正确的,然后在DetailViewController页面上将变量索引设置为正确的数字。我计算设置索引的正确数字(称为whichIndex)的方法是匹配buttonsArray中的哪个索引(单击的按钮)。我的问题是找到被单击的按钮的标题/名称(发件人),并将其设置为按钮名称,以便我可以在我的按钮阵列中搜索它并找到它的索引

TL;DR您如何像使用UIImageView一样提取UIButton的名称

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "goToFactSegue" {
        // send info to next page
        if let whereToGo = segue.destinationViewController as? DetailViewController {
            let theButtonsName = sender!.******** as! UIButton
            if let whichIndex = find(buttonsArray, theButtonsName) {
            whereToGo.index = whichIndex 
            }}
    }
}

@IBAction func goToFacts(sender: UIButton) {
    performSegueWithIdentifier("goToFactSegue", sender: sender)
}
我搜索了xcode建议的所有可能性,没有任何东西与UIButton交互,阅读文档,他们谈论的只是.titleLabel,这是实际文本(没有,.titleLabel不起作用)
还尝试了常见的怀疑(命名…等的变体)

我建议您,通过对应用程序功能的简要说明,标记按钮。你可以用故事板来做,用像1,2,3,…,n这样的值来标记每个按钮,然后你就会得到你想要的索引。UIButton有一个属性标记:

println("Tag of button: \(button.tag)")
发送者也是如此

@IBAction func goToFacts(sender: UIButton) {
      performSegueWithIdentifier("goToFactSegue", sender: sender)
      whichIndex = sender.tag
}

我建议你,通过对你的应用程序所做的非常简单的解释,标记你的按钮。你可以用故事板来做,用像1,2,3,…,n这样的值来标记每个按钮,然后你就会得到你想要的索引。UIButton有一个属性标记:

println("Tag of button: \(button.tag)")
发送者也是如此

@IBAction func goToFacts(sender: UIButton) {
      performSegueWithIdentifier("goToFactSegue", sender: sender)
      whichIndex = sender.tag
}

我建议你,通过对你的应用程序所做的非常简单的解释,标记你的按钮。你可以用故事板来做,用像1,2,3,…,n这样的值来标记每个按钮,然后你就会得到你想要的索引。UIButton有一个属性标记:

println("Tag of button: \(button.tag)")
发送者也是如此

@IBAction func goToFacts(sender: UIButton) {
      performSegueWithIdentifier("goToFactSegue", sender: sender)
      whichIndex = sender.tag
}

我建议你,通过对你的应用程序所做的非常简单的解释,标记你的按钮。你可以用故事板来做,用像1,2,3,…,n这样的值来标记每个按钮,然后你就会得到你想要的索引。UIButton有一个属性标记:

println("Tag of button: \(button.tag)")
发送者也是如此

@IBAction func goToFacts(sender: UIButton) {
      performSegueWithIdentifier("goToFactSegue", sender: sender)
      whichIndex = sender.tag
}

你不应该试着按“发送人姓名”按钮!。标题标签!。文本作为UIButton而不是字符串。如果按钮上有一个标题标签,它应该与它的值一起出现。你不应该试图强制转换按钮名sender!。标题标签!。文本作为UIButton而不是字符串。如果按钮上有一个标题标签,它应该与它的值一起出现。你不应该试图强制转换按钮名sender!。标题标签!。文本作为UIButton而不是字符串。如果按钮上有一个标题标签,它应该与它的值一起出现。你不应该试图强制转换按钮名sender!。标题标签!。文本作为UIButton而不是字符串。如果按钮上有一个标题标签,它应该显示它的值。比我快一秒钟:)正要发布--这就是我修复错误所做的,谢谢!除了我没有把它分成两部分(因为它不是我们要找的标签。只是取出了有问题的代码,它就成功了。比我快一秒:)我正要发布——这就是我修复错误所做的,谢谢!除了我没有把它分成两部分(因为它不是我们要找的标签。只是取出了有问题的代码,它就成功了。比我快一秒:)我正要发布——这就是我修复错误所做的,谢谢!除了我没有把它分成两部分(因为它不是我们要找的标签。只是取出了有问题的代码,它就成功了。比我快一秒:)我正要发布——这就是我修复错误所做的,谢谢!除了我没有把它分成两部分(因为它不是我们要找的标签,只是去掉了有问题的代码,它就成功了)。