gpt4 book ai didi

ios - 如何显示来自不同类的警报

转载 作者:搜寻专家 更新时间:2023-10-31 22:05:01 25 4
gpt4 key购买 nike

我创建了一个 Utilities 类来保存一些常用函数,其中之一是 alertUser 函数,如果调用该函数,它将向用户显示一个带有提供的标题和消息文本的警告框。在另一个类文件中,我正在验证一些文本字段条目,如果验证没有通过,那么我想使用 Utilities 类中的 alertUser 函数。但是,当我这样做时,我在 Xcode 日志中收到以下错误消息:

Warning: Attempt to present <UIAlertController: 0x7f9c4be0b140> on <MyAppName.Utilities: 0x7f9c4be1cb60> whose view is not in the window hierarchy!

调用代码在 UIViewController 类文件中。这是在类 ItemSettingsVC: UIViewController:

private func validateNameField() -> Bool {
var passed = false

if (nameField.hasText) {
passed = true
} else {
Utilities().alertUser(strTitle: "Alert", strMessage: strInvalidNameFieldErrorMsg)
passed = false
}
return passed
}

这是 alertUser 函数,它在实用程序类:UIViewController:

public func alertUser(strTitle: String, strMessage: String) {
let myAlert = UIAlertController(title: strTitle, message: strMessage, preferredStyle: UIAlertControllerStyle.alert)
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil)
myAlert.addAction(okAction)
self.present(myAlert, animated: true, completion: nil)
}

这是在 iOS 上运行。我正在使用 Xcode 8 和 swift 3。非常感谢任何帮助。谢谢。

最佳答案

应该这样做:

public func alertUser(strTitle: String, strMessage: String) {
let myAlert = UIAlertController(title: strTitle, message: strMessage, preferredStyle: UIAlertControllerStyle.alert)
let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.default, handler: nil)
myAlert.addAction(okAction)
UIApplication.shared.delegate?.window??.rootViewController?.present(myAlert, animated: true, completion: nil)
}

关于ios - 如何显示来自不同类的警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46187802/

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