ios - Swift 在 View 和它的 ViewController 之间交换变量

标签 ios swift

我有一个 View Controller :

class graphicViewController: UIViewController {
    var pathToFile = "" //it's changed in method PrepareForSegue from previous ViewController
}

我有一个 View :

class graphicView: UIView {
   var ltr:String?
   override func drawRect(rect: CGRect) {
      println(ltr!)
   }
}

我应该如何以及在哪里实现变量 pathToFile 的访问/传输,它在 drawRect 中不能为 null?

最佳答案

由于您在 prepareForSegue 中设置了 pathToFile 属性,因此传递属性值的最佳位置是 graphicViewControllerviewDidLoad 函数:

override func viewDidLoad() {
    if let gView = view as? graphicView {
        gView.ltr = pathToFile
    }
}

旁注:通常,您希望使用大写字母命名您的类型,并使用小写字母命名您的实例。因此,graphicView 将是 GraphicView

关于ios - Swift 在 View 和它的 ViewController 之间交换变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26492360/

相关文章:

ios - 使用 Promise 链接网络调用

ios - Xcode 9 - 添加 App Store 图标

swift - 如何在 Swift 中使用反射获取所有类初始化器

javascript - 游戏关闭中的加速计

ios - 如果泛型类需要子类,则找不到协议(protocol)初始化

ios - 从角落调整旋转的 UIView 的大小

ios - 当 TableView 单元格匹配条件 Swift 时尝试更新 Collection View

Swift API 网关 key 授权

swift - 是否可以将 MacOS 应用程序从 Xcode 项目添加到 Launchpad?

ios - 仅当所有文本字段均已填写时才启用 Swift 中的按钮