3

我创建了一个UIViewController包含一个我已经构建的自定义类的视图。我已将视图连接到 File's Owner 视图插座。它渲染正确,我没有任何实际问题。但是,我想从我的视图控制器实例中调用我的视图中的一个方法,比如说它被称为drawSomething. 因此,在我的控制器中的一个方法中,我使用:

[self.view drawSomething];

有用。但是我收到了预编译器警告,因为它似乎不知道我的自定义视图定义中的方法。我的方法在这里错了吗?我可以创建一个局部变量并将其转换为使警告明显消失。我已经导入了视图的头文件,所以这不是问题。

我觉得我错过了一些微不足道的东西。

我的自定义视图的 .h 包含:

-(void) drawSomething;

我的自定义视图的 .m 包含:

-(void) drawSomething { <code> };
4

1 回答 1

12

self.view基本上是一个指向UIView用作视图控制器主视图的指针。由于您的视图是具有自定义方法的自定义类,因此您需要对自定义类进行强制转换以调用您的自定义方法:

[((MyCustomClass *)self.view) drawSomething];

否则,您正在调用drawSomething一个UIView不存在的标准。

于 2012-06-16T15:42:47.990 回答