objective-c - 需要在 UIViewController 中转换 self.view 吗?

标签 objective-c ios model-view-controller uiview uiviewcontroller

我创建了一个 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/

相关文章:

iphone - 如何避免 iPhone 中的 Web 服务(ASIHTTPRequest)响应延迟?

ios - 嵌套的 UIViews 不接收触摸事件

javascript - 建议 : Struggling with Model-View-Controller in JavaScript

html - 如何在 ng-repeat 中允许重复?

iphone - 从 iPhone 静态库中提取对象 (*.o) 文件

ios - 动态加载 Objective C 代码

ios - Swift 中的 Twitter 时间线集成 (SwiftHTTP)

iPhone - 通过 UITabBarItem 和 dismissModalViewController 干净地呈现 ModalViewController

objective-c - 删除我的 mac 应用程序栏中的代理图标

spring - 显示使用 Tomcat7 Maven 插件但未使用独立 Tomcat 的主页