当前位置: 首页 > 面试题库 >

从UITableViewCell呈现UIAlertController

司马祖鹤
2023-03-14
问题内容

我正在尝试向自定义添加提醒,UITableViewCell以提出一个UIAlertView我需要从调用presentViewController的提示UIViewController。但是,我不知道如何UIViewControllerUITableViewCell该类访问当前实例。下面的代码是我尝试使用扩展名进行的操作。

我得到这个错误

表达式解析为未使用的函数。

extension UIViewController
{

    class func alertReminden(timeInterval: Int)
    {
        var refreshAlert = UIAlertController(title: "Refresh", message: "All data will be lost.", preferredStyle: UIAlertControllerStyle.Alert)

        refreshAlert.addAction(UIAlertAction(title: "Ok", style: .Default, handler: { (action: UIAlertAction!) in
            Alarm.createReminder("Catch the Bus",
                timeInterval: NSDate(timeIntervalSinceNow: Double(timeInterval * 60)))
        }))

        refreshAlert.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: { (action: UIAlertAction!) in
            println("Handle Cancel Logic here")
        }))

        UIViewController.presentViewController(refreshAlert)


    }
}

class CustomRouteViewCell: UITableViewCell {

问题答案:

您可以使用此扩展来查找显示单元格的viewController

extension UIView {
var parentViewController: UIViewController? {
    var parentResponder: UIResponder? = self
    while parentResponder != nil {
        parentResponder = parentResponder!.nextResponder()
        if parentResponder is UIViewController {
            return parentResponder as! UIViewController!
        }
    }
    return nil
}
}

或用于rootViewController呈现:

UIApplication.sharedApplication().keyWindow?.rootViewController?.presentViewController(refreshAlert, animated: true, completion: nil)

Swift 4.2更新

extension UIView {
    var parentViewController: UIViewController? {
        var parentResponder: UIResponder? = self
        while parentResponder != nil {
            parentResponder = parentResponder!.next
            if parentResponder is UIViewController {
                return parentResponder as? UIViewController
            }
        }
        return nil
    }
}

或用于rootViewController呈现:

UIApplication.shared.keyWindow?.rootViewController?.present(alertVC, animated: true, completion: nil)


 类似资料:
  • 问题内容: 我有以下几点: UITableViewController UITableView 自定义UITableViewCell子类 我为该单元格使用了一个.xib文件,它是一个子类。此自定义单元为单元按钮上的某些触摸事件处理IBAction。 我想从单元格中引用ViewController及其一些变量。 我应该如何从UITableViewCell类访问UITableViewControlle

  • 我附上JSON格式。我还需要将值从一个组件传递到另一个组件。除了localstorage之外,还有其他功能可以缓存值吗?

  • 我在运行方案时遇到以下错误。 编辑:在DOCKER容器中运行时发生(使用最新的DOCKER图像用于chrome浏览器,并使用node-chrome-debug) 任何想法都将不胜感激。

  • 问题内容: 我在这里遇到了一些问题,我无法发出find_by_sql请求来呈现ActiveRecord关系。确实,我需要一个activerecord关系来提出新请求: 没有activerecord关系,我不能使用“ pluck”。因此,我想我必须将sql请求转换为Activerecord请求。但是,一旦我在ActiveRecord上使用“计数”,我就会遇到一个巨大的问题:最后,我没有ActiveR

  • 我正在编程一个小游戏,它是基于瓷砖的。但当我渲染它的时候,有时那些瓷砖之间的一个小空间是可见的,(绿色)背景是暴露的(可以在视频中看到)。 我想知道,是否有一些双缓冲技术,可以解决这个bug,但我读到,双缓冲已经实现了。

  • 我想实现回收器视图布局,但我得到错误“呈现问题”。我尝试添加include,但错误仍然存在。我该如何解决问题呢? 错误:I