我想在UIAlertController
课程中展示UITableViewCell
。
搜索时我发现UIApplication.shared.keyWindow?.rootViewController?.present
这样做会显示出来。
如果已打开的ViewController
位于NavigationController
下,因为我的rootViewController
是NavigationController
,而cell
正在其中的视图呈现。
那么我怎样才能在UIAlertController
中呈现UITableViewCell
。
答案 0 :(得分:1)
我认为你必须在单元格Class中创建一个变量,并且必须将这些类分配给实现单元格的变量。
然后在单元格中执行任何操作,您只需按下面的代码调用警告:
var fromViewController : UIViewController?
@IBAction func accessoryBtnTapped(_ sender: UIButton){
let alert = UIAlertController(title: "Alert!", message: "It's Alert From Cell", preferredStyle: .alert)
let okAction = UIAlertAction(title: "OK", style: .default, handler: nil)
alert.addAction(okAction)
fromViewController?.present(alert, animated: true, completion: nil)
}
答案 1 :(得分:0)
您需要实施delegate
模式。
创建一个由您的控制器实现的protocol
,并将此控制器的weak
引用分配给您的单元格。
然后使用类似cell.delegate.didPerformAction()
单元格是View
,它不应该负责呈现任何内容。