与 IBAction 链接的 UIButton 不能在物理设备上的模拟中工作,也不能在 Xcode 9.2 中的模拟器中工作
Posted
技术标签:
【中文标题】与 IBAction 链接的 UIButton 不能在物理设备上的模拟中工作,也不能在 Xcode 9.2 中的模拟器中工作【英文标题】:UIButton linked with IBAction will not work in simulation on physical device nor simulator in Xcode 9.2 【发布时间】:2018-01-10 02:14:55 【问题描述】:我使用 Control + Drag 添加了 UIButton,添加了变量和 arc4random 用于随机数字,然后使用前端函数测试我的按钮以确保它有效。但是按钮完全没有响应,我的代码没有错误。
import UIKit
class ViewController: UIViewController
var randomDiceIndex1 : Int = 0
var randomDiceIndex2 : Int = 0
@IBOutlet weak var diceImageView1: UIImageView!
@IBOutlet weak var diceImageView2: UIImageView!
override func viewDidLoad()
super.viewDidLoad()
@IBAction func rollButtonPressed(_ sender: UIButton)
randomDiceIndex1 = Int(arc4random_uniform(6))
randomDiceIndex2 = Int(arc4random_uniform(6))
print(randomDiceIndex1) //This line of code is what I used to test
【问题讨论】:
您需要确保storyboard
视图控制器和ViewController
之间的连接,您可以通过在storyboard
上右键单击viewController
来做到这一点。
我检查以确保我有一个连接,我确实做到了。我正在对 Udemy 进行跟进,我重新编写了代码和所有内容,只是为了得到相同的结果。这可能是一个错误吗?
这不太可能是错误,因为这是完全标准的功能,如果出现问题,人们会大声疾呼。您能否分享项目(保管箱等)或提供有关如何设置故事板的更多详细信息。
我今天解决了这个问题。我刚刚删除了按钮和我用它建立的所有连接并添加了一个新按钮。对不起伙计们,新手错误。
【参考方案1】:
以编程方式分配操作。
yrBtnOutlet.addTarget(self, action: #selector(self. rollButtonPressed(_:)), for: .touchUpInside)
希望这会有所帮助。
【讨论】:
虽然您当然可以这样做,但应该没有必要,而且它无助于确定导致原始问题的原因。以上是关于与 IBAction 链接的 UIButton 不能在物理设备上的模拟中工作,也不能在 Xcode 9.2 中的模拟器中工作的主要内容,如果未能解决你的问题,请参考以下文章
在 IBAction 中禁用的 UIButton 重新启用自身