Ios 如果回答不正确,防止警报操作解除UIAlertController-Swift 4
我有一个简单的家长网关,用于使用UIAlertController的儿童友好型游戏 当用户回答错误时-我不希望警报视图被取消,此时我的设备振动,屏幕抖动,但我无法让警报视图停留在屏幕上 提供的答案在Obj-C中或涉及禁用按钮,这显然不起作用,其他答案也不起作用-因此我希望会有更新的答案Ios 如果回答不正确,防止警报操作解除UIAlertController-Swift 4,ios,swift,uialertview,Ios,Swift,Uialertview,我有一个简单的家长网关,用于使用UIAlertController的儿童友好型游戏 当用户回答错误时-我不希望警报视图被取消,此时我的设备振动,屏幕抖动,但我无法让警报视图停留在屏幕上 提供的答案在Obj-C中或涉及禁用按钮,这显然不起作用,其他答案也不起作用-因此我希望会有更新的答案 func parentGate () { var val1 = [1,2,3,4] var val2 = [5,6,7,8] let valIndex1 = Int(arc4random
func parentGate () {
var val1 = [1,2,3,4]
var val2 = [5,6,7,8]
let valIndex1 = Int(arc4random_uniform(UInt32(val1.count-1)))
let valIndex2 = Int(arc4random_uniform(UInt32(val2.count-1)))
accessAnswer = val1[valIndex1]+val2[valIndex2]
let alertController = UIAlertController (title: "Parental Control", message: "This section is for Parents only, \nplease answer the question below: \nWhat is \(val1[valIndex1]) + \(val2[valIndex2])?", preferredStyle: .alert)
let testAnswer = UIAlertAction(title: "OK", style: .default, handler: answerHandler)
let cancelAnswer = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
alertController.addTextField(configurationHandler: answerTextFieldResult)
alertController.addAction(testAnswer)
alertController.addAction(cancelAnswer)
self.present(alertController, animated: true, completion: nil)
}
然后testAnswer处理程序如下所示:
func answerHandler (alert: UIAlertAction) {
guard let suppliedAnswer = answerTextField?.text,
let answer = Int(suppliedAnswer) else {
return
}
if answer == accessAnswer {
print ("Good")
} else {
print ("Bad")
AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
self.view.shake(count: 3, for: 0.3, withTranslation: 3)
}
}
如果您想查看textField处理程序目前的外观:
func answerTextFieldResult(textfield: UITextField) {
answerTextField = textfield
answerTextField?.placeholder = "Answer"
}
你不能这样做。
这是系统行为——当你点击按钮时,警报关闭,你无法阻止
只有一种解决方案是创建一个自定义视图控制器,该控制器看起来像本机的
UIAlertController
可能的副本它的可能副本不是副本,请重新阅读问题,我在目标C中不需要它,我也不想禁用该操作。@Brewski这是系统行为-当你点击按钮时,警报关闭,你无法阻止。好的,谢谢,我想我会做一个UI解决方案,显示“错误答案”@Brewski没问题!