我创建了一个 UIViewController
,其中包含一个带有我构建的自定义类的 View 。我已将 View 连接到 File's Owner View 导出。它呈现正确,我没有任何真正的问题。但是,我想从我的 View Controller 实例调用我的 View 中的一个方法,假设它称为 drawSomething
。所以在我的 Controller 的一个方法中,我使用:
[self.view drawSomething];
它有效。但是我收到预编译器警告,因为它似乎不知道我的自定义 View 定义中的方法。我的方法在这里错了吗?我可以创建一个局部变量并将其强制转换以使警告明显消失。我已经导入了 View 的头文件,所以这不是问题。
我觉得我错过了一些微不足道的东西。
.h 我的自定义 View 包含:
-(void) drawSomething;
.m 我的自定义 View 包含:
-(void) drawSomething { <code> };
最佳答案
self.view
基本上是指向用作 View Controller 主视图的 UIView
的指针。由于您的 View 是具有自定义方法的自定义类,因此您需要强制转换为您的自定义类以调用您的自定义方法:
[((MyCustomClass *)self.view) drawSomething];
否则,您将在不存在的标准 UIView
上调用 drawSomething
。
关于objective-c - 需要在 UIViewController 中转换 self.view 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11064808/