gpt4 book ai didi

xcode - Swift WatchOS 等待用户输入

转载 作者:行者123 更新时间:2023-11-28 07:00:49 25 4
gpt4 key购买 nike

@IBAction func switchedButton(value: Bool) {
dump(self.showPopup("Test"))
}

func showPopup(textMessage: String) -> Bool {

let action1 = WKAlertAction(title: "Approve", style: .Default) { () -> Void in
return true
}

let action2 = WKAlertAction(title: "Cancel", style: .Cancel) { () -> Void in

return false
}

presentAlertControllerWithTitle("Confirm", message: textMessage, preferredStyle: .ActionSheet, actions: [action1, action2])

return false

}

这将始终返回 false。如何等待用户选择批准或取消?

最佳答案

它总是返回 false,因为当用户点击某个操作时,showPopup 方法已经返回。它实质上使该方法异步。

请注意,WKAlertAction 上的回调没有指定返回值,因此您不能从它们返回任何内容。

您想要做的是将一个回调 block 传递给您可以在用户交互时调用的 showPopup:

@IBAction func switchedButton(value: Bool) {
self.showPopup("Test") { result in
// result is a bool
}
}

// callback expects a single Bool parameter
func showPopup(textMessage: String, callback: (Bool) -> ()) {
let action1 = WKAlertAction(title: "Approve", style: .Default) { () -> Void in
callback(true)
}

let action2 = WKAlertAction(title: "Cancel", style: .Cancel) { () -> Void in
callback(false)
}

presentAlertControllerWithTitle("Confirm", message: textMessage, preferredStyle: .ActionSheet, actions: [action1, action2])
}

关于xcode - Swift WatchOS 等待用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32094226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com