我正在尝试将数据从UIViewController传递到UIView。这是我的代码的一部分:
在我的UIViewController.m中,我定义了一个滚动视图
@property(nonatomic, strong)DetailScrollView *scrollView;
- (DetailScrollView *)scrollView{
if (!_scrollView) {
DetailScrollView *scrollView = [[DetailScrollView alloc] init];
_scrollView = scrollView;
}
return _scrollView;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:self.scrollView];
self.scrollView.product = self.product;
}
我在此处添加一个断点I。它确实获得了产品价值。但是在我的DetailScrollView.m文件中,产品价值为零。
DetailScrollView.h
@property(nonatomic, strong)Product *product;
DetailScrollView.m
- (instancetype)initWithFrame:(CGRect)frame{
//get the value of self.product was nil
}
有人可以帮助我吗?
最佳答案
据我了解,您想在product
的初始化程序中使用DetailScrollView
。除非在初始化时通过它,否则您将不会得到它。例如。
- (DetailScrollView *)scrollView{
if (!_scrollView) {
DetailScrollView *scrollView = [[DetailScrollView alloc] initWithProduct:self.product];
_scrollView = scrollView;
}
return _scrollView;
}
然后在初始化程序中将其存储为属性:
- (instancetype)initWithProduct:(Product *)product {
self = [super initWithFrame:<#someDefaultFrame#>];
self.product = product;
}