2017-01-09 2 views
0

Я пытаюсь передачи данных от UIViewController в UIView часть .Здесь в мой код: В моей UIViewController.m, я определяю ScrollviewПередача данных между UIViewController и UIView по свойству была равна нулю?

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

добавить точку останова hereI.It действительно получает значение продукта. Но в моем файле DetailScrollView.m значение продукта было равно нулю. DetailScrollView.h

@property(nonatomic, strong)Product *product; 

DetailScrollView.m

- (instancetype)initWithFrame:(CGRect)frame{ 
    //get the value of self.product was nil 
} 

Любой человек может мне помочь?

+0

это хорошо, но где и являются инициализация Scrollview? –

+0

@AndeySatyanarayana Я использую метод initialize –

+0

Как вы узнали, что не получили продукт из scrollView? где вы вошли в систему? viewDidLoad? viewDidAppear? – Joshua

ответ

3

Как я понимаю, вы хотите 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; 
} 
+0

Могу ли я передать продукт в метод initWithFrame scrollView? –

+0

'initWithFrame:' ​​назначается инициализатором для любого 'UIView', поэтому вы можете сделать свой инициализатор удобства с продуктом и вызывать' initWithFrame: 'оттуда путем определения некоторого фрейма по умолчанию. Как и в моем примере. – Eimantas

+0

OK.Спасибо! :) –

 Смежные вопросы

  • Нет связанных вопросов^_^