对 UIView、其 class 和 UIViewController 的混淆 - xcode iOS objective-c
confusion on UIView, its class and UIViewController - xcode iOS objective-c
- 在故事板中,我将 UIView 拖到 ViewController。
- 将 UIView 分配给自定义 class "myUIView"(这将是 myUIView.h 和 myUIView.m)
- 像这样设置ViewController:
ViewController.h
#import <UIKit/UIKit.h>
@interface ScheduleViewingVC : UIViewController
//for the dragged-out UIView
@property (strong, nonatomic) IBOutlet UIView *myUIViewOutlet;
//to do some drawings on myUIViewOutlet
@property (strong, nonatomic) myUIView *myUIViewClass;
@end
ViewController.m
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//resize my UIView into a square
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGRect squareFrame = CGRectMake(0, 0, screenWidth, screenWidth);
_myUIViewOutlet = [[UIView alloc] initWithFrame:squareFrame];
}
@end
如果我运行这个项目,
- (void)drawRect:(CGRect)rect {}
inside myUIViewClass.m 运行s automatically since.. it's linked to myUIViewOutlet.
现在,我需要发送一些数据到 myUIViewClass 链接到 myUIViewOutlet 来自 ViewController.
从ViewController向myUIViewOutlet发送数据似乎不对..
我怎样才能使它正常工作?我应该将数据发送到 myUIViewClass 吗?
谁能帮我说清楚?谢谢!
发送数据到myUIViewClass会不对。相反,您可以实现一些协议(委托、数据源类型)的机制。
您可以做的事情如下:
- 在您的 myUIView class.
中定义一些自定义协议 myUIViewProtocol
- 定义您需要的委托和方法。
- 让您的 ViewController 遵守此协议并覆盖此方法。
此方法与
UITableView.
希望对您有所帮助。
- 在故事板中,我将 UIView 拖到 ViewController。
- 将 UIView 分配给自定义 class "myUIView"(这将是 myUIView.h 和 myUIView.m)
- 像这样设置ViewController:
ViewController.h
#import <UIKit/UIKit.h>
@interface ScheduleViewingVC : UIViewController
//for the dragged-out UIView
@property (strong, nonatomic) IBOutlet UIView *myUIViewOutlet;
//to do some drawings on myUIViewOutlet
@property (strong, nonatomic) myUIView *myUIViewClass;
@end
ViewController.m
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//resize my UIView into a square
CGRect screenRect = [[UIScreen mainScreen] bounds];
CGFloat screenWidth = screenRect.size.width;
CGRect squareFrame = CGRectMake(0, 0, screenWidth, screenWidth);
_myUIViewOutlet = [[UIView alloc] initWithFrame:squareFrame];
}
@end
如果我运行这个项目,
- (void)drawRect:(CGRect)rect {}
inside myUIViewClass.m 运行s automatically since.. it's linked to myUIViewOutlet.
现在,我需要发送一些数据到 myUIViewClass 链接到 myUIViewOutlet 来自 ViewController.
从ViewController向myUIViewOutlet发送数据似乎不对.. 我怎样才能使它正常工作?我应该将数据发送到 myUIViewClass 吗?
谁能帮我说清楚?谢谢!
发送数据到myUIViewClass会不对。相反,您可以实现一些协议(委托、数据源类型)的机制。
您可以做的事情如下:
- 在您的 myUIView class. 中定义一些自定义协议 myUIViewProtocol
- 定义您需要的委托和方法。
- 让您的 ViewController 遵守此协议并覆盖此方法。
此方法与 UITableView.
希望对您有所帮助。