【发布时间】:2013-05-09 23:24:44
【问题描述】:
说起来很复杂,但请试一试。我有一个带有类别名称的数组的 MenuViewController,点击 tableview 中的类别行,使用 Storyboard ID 实例化不同的视图控制器。
现在,如果我为每个视图控制器使用不同的类,那将是很多冗余代码和类。我想要做的是为所有这些视图控制器使用一个类,我们将其称为 PrimaryViewController,并在 MenuViewController 中选择不同类别后,它会在 PrimaryViewController 中调用不同的方法或块。
这里是PrimaryViewController中的方法:
- (void) fetchData:(NSInteger )pageNumber
{
channel = [[TheFeedStore sharedStore] fetchWebService:pageNumber withCompletion:^(RSSChannel *obj, NSError *err){
if (!err) {
int currentItemCount = [[channel items] count];
channel = obj;
int newItemCount = [[channel items] count];
int itemDelta = newItemCount - currentItemCount;
if (itemDelta > 0) {
NSMutableArray *rows = [NSMutableArray array];
for (int i = 0; i < itemDelta; i++) {
NSIndexPath *ip = [NSIndexPath indexPathForRow:i inSection:0];
[rows addObject:ip];
}
[[self tableView] insertRowsAtIndexPaths:rows withRowAnimation:UITableViewRowAnimationBottom];
}
}
}];
}
上面的代码可以加载一个类别。注意第一行“channel = [[TheFeedStore sharedStore] fetchWebService”,其他类别分别在另一个名为 TheFeedStore 的类中命名为“fetchWebServiceCat2”、“fetchWebServiceCat3”和“fetchWebServiceCat4”。
我想要的是,当从 MenuViewController 实例化不同的视图控制器时,它应该使用 PrimaryViewController 的 fetchData 方法来调用 TheFeedStore 的不同类别方法。
谢谢!
【问题讨论】:
标签: ios objective-c xcode uiviewcontroller storyboard