如何向视图控制器的视图发送消息?
Posted
技术标签:
【中文标题】如何向视图控制器的视图发送消息?【英文标题】:How do I send a message to the ViewController's View? 【发布时间】:2016-11-07 22:09:33 【问题描述】:我在离开了很长一段时间后回到了 ios 开发,所以很抱歉不得不问这样一个基本的问题。
我正在创建一个单视图应用程序。我创建了一个类DrawingBoard
,它是UIImageView
的子类。 Main.Storyboard 中设置的ViewController
与样板保持不变,只是我将视图控制器的视图从View
类更改为DrawingBoard
。在界面生成器中,我右键单击“查看控制器”,我看到“绘图板”被列为插座。
到目前为止,一切都很好。我启动应用程序。 DrawingBoard
被实例化并响应触摸。
但现在我想从ViewController
向DrawingBoard
发送一条消息。我在标题的@interface
中设置了一个公共方法,该方法在.m
中实现。 ...我无法发送消息。视图控制器似乎不知道DrawingBoard
。我错过了什么?
//
// DrawingBoard.h
// DrawingBoard
#import <UIKit/UIKit.h>
@interface DrawingBoard : UIImageView
-(void)testMe;
@end
...
//
// DrawingBoard.m
// DrawingBoard
//
#import "DrawingBoard.h"
// ...
-(void)testMe
NSLog(@"/n/n/nTested!/n/n/n/");
我尝试从ViewController
向DrawingBoard
发送消息,如下所示:
[self.view testMe]
【问题讨论】:
你的问题和 Cocoa 有什么关系? 【参考方案1】:你可以说
[(DrawingBoard*)self.view testMe];
但不要。将图像视图放入视图控制器的主视图;不要让它成为视图控制器的主视图。然后创建一个 IBOutlet,以便视图控制器可以获取对它的引用。
【讨论】:
顺便说一句,你似乎几乎不知道 Objective-C,所以既然你回来了,为什么不放弃它并学习 Swift 呢?这是一种更好的初学者语言。以上是关于如何向视图控制器的视图发送消息?的主要内容,如果未能解决你的问题,请参考以下文章
Objective-C – 从应用程序委托向视图控制器发送消息