Passing data from a delegate to a UIViewController

I have a ViewController :

 @interface SubmitCampaignViewController:UIViewController<SocialPagesViewControllerDelegate> 

And SocialPagesViewController with a UITableView as follows:

 @protocol SocialPagesViewControllerDelegate; @interface SocialPagesViewController : BaseViewController<UITableViewDataSource, UITableViewDelegate> @property (nonatomic, weak) id<SocialPagesViewControllerDelegate> delegate; @property (nonatomic, weak) NSArray *pages; @end 

I would like to pass data from SubmitCampaignViewController to SocialPagesViewController .

So, I wrote like this:

 SocialPagesViewController *socialViewController = [storyboard instantiateViewControllerWithIdentifier:@"socialPages"]; socialViewController.delegate = self; socialViewController.pages = objects; [self presentViewController:socialViewController animated:NO completion:NULL]; 

However, although the objects are not 0, self.pages.count is 0.

SocialPagesViewController.m

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { DLog(@"%d",self.pages.count); return self.pages.count; } 

How to pass NSArray objects from SubmitCampaignViewController to SocialPagesViewController ?

+4
source share
2 answers

Try setting the array value to strong. @property (nonatomic, strong) NSArray *pages;

+4
source

I would recommend setter from pages to @property (nonatomic, copy) NSArray *pages; , since you need the same object array in pages .

At the time of submission, socialViewController ..

 socialViewController.pages = [objects copy]; 
+1
source

All Articles