iOS Swift - 来自Parent的Child中的访问方法

时间:2015-02-22 15:02:46

标签: ios swift uiview

在我的应用程序中,我有一个故事板,其中包含一系列元素。我从" ViewController.swift"。

设置这些元素的属性

在故事板上有两个UIViews,它们已经被子类化以允许绘制方法。它们将被用作"签名"用户可以在框中签名的字段。这很好。

UIViews的一个子类化方法是" eraseBitmap"它清除了绘图的UIView。

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

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

我尝试过做

func erase() {   
    SigView.eraseBitmap()
}

然而,这会产生一个错误,说我错过了一个参数。但是,eraseBitmap不接受任何参数。

如果我添加一个参数,无论它是什么,我得到一个" SigView不能转换为......"错误。

任何想法,或更好的编码这部分的方法?

1 个答案:

答案 0 :(得分:1)

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

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

您将此方法应用于SigView的实例。因此,您的用户界面中有SigView的实例,例如:

var aView : SigView = ...

然后您将使用:

func erase () {
  aView.eraseBitmap()
}

或者

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

您获得的错误是由于尝试在类上调用非类方法引起的。只能在类的实例上调用非类方法。