Передача данных от делегата в UIViewController
У меня есть ViewController
:
@interface SubmitCampaignViewController:UIViewController<SocialPagesViewControllerDelegate>
И SocialPagesViewController
с UITableView
как это:
@protocol SocialPagesViewControllerDelegate;
@interface SocialPagesViewController : BaseViewController<UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, weak) id<SocialPagesViewControllerDelegate> delegate;
@property (nonatomic, weak) NSArray *pages;
@end
Я хотел бы передать данные из SubmitCampaignViewController
в SocialPagesViewController
,
Итак, я написал так:
SocialPagesViewController *socialViewController = [storyboard instantiateViewControllerWithIdentifier:@"socialPages"];
socialViewController.delegate = self;
socialViewController.pages = objects;
[self presentViewController:socialViewController animated:NO completion:NULL];
Однако, хотя для объектов не установлено значение 0, self.pages.count равно 0.
SocialPagesViewController.m
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
DLog(@"%d",self.pages.count);
return self.pages.count;
}
Как я могу передавать предметы NSArray
от SubmitCampaignViewController
в SocialPagesViewController
?
2 ответа
Решение
Попробуйте установить ссылку на массив как сильную. @property (nonatomic, strong) NSArray *pages;
Я бы порекомендовал сеттер pages
в @property (nonatomic, copy) NSArray *pages;
так как вам требуется тот же массив object
в pages
,
На момент представления socialViewController..
socialViewController.pages = [objects copy];