言葉にするのは難しいですが、試してみてください。カテゴリ名の配列を持つ MenuViewController があり、テーブルビューのカテゴリ行をタップして、ストーリーボード ID を使用して別のビュー コントローラをインスタンス化します。
ここで、View Controller ごとに異なるクラスを使用すると、多くの冗長なコードとクラスになります。私がやりたいことは、これらすべてのビュー コントローラーに 1 つのクラスを使用してそれを 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];
}
}
}];
}
上記のコードには、1 つのカテゴリをロードする機能があります。最初の行「channel = [[TheFeedStore sharedStore] fetchWebService」に注意してください。他のカテゴリは、TheFeedStore という名前の別のクラスで「fetchWebServiceCat2」、「fetchWebServiceCat3」、および「fetchWebServiceCat4」と名付けられています。
私が欲しいのは、別のView ControllerがMenuViewControllerからインスタンス化されたときです。PrimaryViewControllerのfetchDataメソッドを使用して、TheFeedStoreの別のカテゴリメソッドを呼び出す必要があります。
ありがとう!