将数据从委托传递给UIViewController

时间:2013-03-19 12:36:38

标签: iphone objective-c cocoa-touch uitableview nsarray

我有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 个答案:

答案 0 :(得分:4)

尝试将数组的引用设置为strong。 @property (nonatomic, strong) NSArray *pages;

答案 1 :(得分:1)

我建议将pages设置为@property (nonatomic, copy) NSArray *pages;,因为object需要相同的数组pages

在呈现socialViewController ..

socialViewController.pages = [objects copy];