繁体   English   中英

在UIViewController和UIView之间通过属性传递数据为零?

[英]Passing data between UIViewController and UIView by property was nil?

我正在尝试将数据从UIViewController传递到UIView。这是我的代码的一部分:在我的UIViewController.m中 ,我定义了一个scrollview

@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 除非在初始化时通过它,否则您将不会得到它。 例如

- (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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM