iOS Swift - 从父级访问子级中的方法

iOS Swift - Accessing method in Child from Parent

在我的应用程序中,我有一个故事板,其中布置了一堆元素。我正在从 "ViewController.swift".

设置这些元素的属性

故事板上有两个 UIView,它们已被子类化以允许绘制方法。它们将用作 "signature" 字段,用户可以在其中签名到框中。这工作正常。

UIViews 的子类方法之一是 "eraseBitmap",它清除绘图的 UIView。

class SigView: UIView {
    ...
    func eraseBitmap() {
        path = nil
        cache = nil
    }
}

我有一个按钮调用父 VC 中的函数 "erase"。

我试过

func erase() {   
    SigView.eraseBitmap()
}

然而,这会生成一个错误,提示我缺少参数。然而,eraseBitmap 不接受任何参数。

如果我添加一个参数,不管它是什么,我都会得到一个 "SigView not convertible to..." 错误。

有什么想法或更好的编码方式吗?

您的 SigView class 定义了一个方法 eraseBitmap() - 类似于:

class SigView : UIView {
  func eraseBitmap () { /* ... */ }
}

您会将此方法应用于 SigView 的实例。所以,在你的 UI 中有一个 SigView 的实例,比如:

var aView : SigView = ...

然后您将使用:

func erase () {
  aView.eraseBitmap()
}

或者也许

func erase (view:SigView) {
  view.eraseBitmap()
}

您遇到的错误是由于试图在 class 上调用非 class 方法引起的。非 class 方法只能在 classes.

的实例上调用