當我關閉 UIAlertController 時,我想呼叫 table.reloadData()。但我不知道該怎么做。
我嘗試將 table.reloadData() 放在 ViewController 的 viewWillAppear 中,但它不起作用,因為 Alert 的 modalPresentationStyle 無法更改。
我正在展示 alertController 像這樣:
`let alert = UIAlertController(title: "Some Title", message: "Enter a text", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { [weak alert] (_) in
let enteredTitle = alert!.textFields![0]
let enteredNoteDescription = alert!.textFields![1]
//Save to DB
let note = Note(context: CoreDataService.managedObjectContext)
note.title = enteredTitle.text
note.noteDescription = enteredNoteDescription.text
CoreDataService.saveContext()
}))
present(alert, animated: true, completion: nil)`
uj5u.com熱心網友回復:
func showErrorAlertWithAction( withTitle: String,
andMessage: String,
buttonName: String,
completion: @escaping (() -> Void))
{
let alert = UIAlertController(title: withTitle, message: andMessage, preferredStyle: .alert)
let action = UIAlertAction(title: buttonName, style: .default) { _ in completion() }
alert.addAction(action)
DispatchQueue.main.async {
self.present(alert, animated: true)
}
}
用法是:
showErrorAlertWithAction(withTitle: "Some Title", andMessage: "Enter a text", buttonName: "OK") {
// here you use action that will take effect after user taps "OK" button e.g:
//Save to DB
let note = Note(context: CoreDataService.managedObjectContext)
note.title = enteredTitle.text
note.noteDescription = enteredNoteDescription.text
CoreDataService.saveContext()
}
uj5u.com熱心網友回復:
我已經嘗試過這個解決方案并與我合作:
假設您的資料源是:
var elements = ["first", "second", "third"]
然后你的警報創建是這樣的:
let alert = UIAlertController(title: "Some Title", message: "Enter a text", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: { [weak self] _ in
self?.elements.append("forth")
self?.tableView.reloadData()
}))
present(alert, animated: true, completion: nil)
因此,如您所見,我已經使用self?.tableView.reloadData()在動作處理程式完成中重新加載了表格視圖,并且對我來說作業正常。讓我知道它是否對您不起作用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/422461.html
標籤:
上一篇:大資料集群環境搭建詳細步驟,涉及zookeeper,hadoop,hive,hbase,kafka
下一篇:GetOpenFileName()和GetSaveFileName()使GetAsyncKeyState()停止作業
