我UIViewController
名为 ParentViewController.h 和.m
然后我在此 ParentViewController 中添加了UIView
。
我已经 uiview.h 和 uiview.h 添加并分配到 ParentViewController 中的UIView
。
来自
-(void)drawRect:(CGRect)rect {}
位于uiview.m,我需要访问ParentViewController内的属性。
我该怎么做?我使用UIView
错了吗?
ParentViewController.h
#import <UIKit/UIKit.h>
@interface ParentViewController : UIViewController
//I want my uiview to access this variable.
@property (nonatomic, strong) NSMutableArray *usedByUIView;
@end
ParentViewController.m
#import "ParentViewController.h"
#import "uiview.h"
@implementation ParentViewController
- (void)viewDidLoad {
...
}
@end
uiview.h
#import <UIKit/UIKit.h>
@interface uiview : UIView
@end
uiview.m
#import "uiview.h"
@implementation uiview
-(id) initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if(self){
}
return self;
}
- (void)drawRect:(CGRect)rect {
NSLog(@"start drawing using the data from usedByUIView");
}
@end
答案 0 :(得分:1)
关于这个问题有几个答案,但是总结一下,你没有,至少不是你这样做的方式。 UIView无法访问他们的视图控制器,也不应该需要访问。当然,在现实世界中,有时候围绕独立视图进行编码的开销是不值得的,因此人们无法访问控制器访问权限。这可以通过在视图中保留实例变量,指向控制器,在加载视图后为其分配引用,或者通过覆盖init以便也传递视图控制器或许多其他方式来完成。但在此之前,请考虑一下您从视图中访问控制器的原因,看看是否有不同的方法来实现它。