我有 UIViewController
命名为 ParentViewController.h 和 .m
然后我在这个 ParentViewController 中添加了 UIView
。
我在 ParentViewController 中添加了 uiview.h 和 uiview.h 并将其分配给 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
最佳答案
关于这个主题有几个答案,但总而言之,您没有,至少不是您这样做的方式。 UIView 无权访问其 View Controller ,因此不需要访问权限。当然,在现实世界中,有时围绕独立 View 进行编码的开销是不值得的,因此人们会侵入 Controller 访问权限。这可以通过在 View 中保留一个实例变量,指向 Controller ,并在 View 加载后分配对它的引用,或者通过覆盖 init 以便您也传递一个 View Controller ,或许多其他方式来完成。但在这样做之前,请仔细考虑为什么要从 View 访问 Controller 的逻辑,看看是否有其他方法可以做到这一点。
关于ios - 如何将 UIView 与从 ViewController 继承的属性或变量一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29625662/