在呈现的View Controller上的UITableViewCell中呈现UIAlertController

时间:2018-01-03 17:05:11

标签: ios swift uitableview swift3 uialertcontroller

我想在UIAlertController课程中展示UITableViewCell

搜索时我发现UIApplication.shared.keyWindow?.rootViewController?.present这样做会显示出来。

如果已打开的ViewController位于NavigationController下,因为我的rootViewControllerNavigationController,而cell正在其中的视图呈现。

那么我怎样才能在UIAlertController中呈现UITableViewCell

2 个答案:

答案 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,它不应该负责呈现任何内容。