Передача данных от делегата в 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];
Другие вопросы по тегам