在Swift 3中显示自定义单元格的警报



我已经在listViewCell.swiftlistViewCell.xib中设计了自定义单元格。我有textfield。当用户输入超过100的数字时,我想显示警报。我在HomeViewController中有TableView。

let alert = UIAlertController(
    title: "Error", 
    message: "Please Insert value less than 100",
    preferredStyle: UIAlertControllerStyle.alert
)
alert.addAction(UIAlertAction(
    title: "Click", 
    style: UIAlertActionStyle.default, 
    handler: nil
))
UIApplication.shared.keyWindow?.rootViewController?.present(alert, animated: true, completion: nil)

然后它给了我Attempt to present <UIAlertController: 0x7f945a5a67d0> on <ProjName.LoginController: 0x7f945a407e70> whose view is not in the window hierarchy!

当我将代码更改为

let alert = UIAlertController(
    title: "Error", message: "Please Insert value less than 100",
    preferredStyle: UIAlertControllerStyle.alert
)
alert.addAction(UIAlertAction(
    title: "Click", 
    style: UIAlertActionStyle.default, 
    handler: nil
))
HomeViewController().present(alert, animated: true, completion: nil)

然后给我unexpectedly found nil while unwrapping an Optional value指向

override func viewDidLoad() {
    super.viewDidLoad()
    **tableViewList.delegate = self**
    tableViewList.dataSource = self
    searchBar.delegate = self
}

如何显示自定义单元格的警报?或者如何在HomeViewController中创建一个通用的警报功能并显示其形成任何Swift文件?

预先感谢

您可以随身携带自定义单元的代表。将您的自定义单元格的委托(例如didEnterInvalidValue didEnterValidValue(设置为HomeViewController。从这些委托实施中,向您的UIAlertController显示自定义消息。

,或者您可以在self.navigationController?.viewControllers上迭代以找到顶视图控制器并在该视图控制器的视图上显示UIAlertController

最简单的是

步骤1:

从您使用自定义单元格的视图控制器中,为您的文本字段制作一个常见的委托功能,目的是通知您文本长度。您可能需要为此扩展uitextfielddelegate。

或您可以将目标函数分配给您的文本字段(虽然不确定是否有效(

您如何捕获特定的Textfield?

您需要使用Indexpath为每个Textfield分配一个标签,并使用该标签捕获特定的文本字段。

步骤2:

在该功能中,您只能使用

显示您的警报
self.present(alert, animated: true, completion: nil)

我会选择委托答案。但是,对于更快的解决方案,在几个项目中,我从AppDelegate的rootviewController(通常是Uinavigation Controller(创建一个单例,以便可以随时获得rootcontroller。使用KeyWindow,它不是很建议,因为KeyWindow并不总是由WORET WOREL WOREL WOREL DIALOG REDEFINE REDEFINE。

控制。

另一个项目我创建了一个由rootcontroller初始化的AlertClass单元电通,并且总是从中调用它。

相关内容

  • 没有找到相关文章

最新更新