2014-07-07 37 views
0

我已經搜索了類似的問題,但我不明白爲什麼這不起作用。我現在做了一些教程和教程項目的工作,但我做的一切都是一樣的,沒有結果。簡單的代理方法不叫

我有我的InboxViewController與表視圖與文章列表。我有另一個視圖(AccordionViewController.h),我可以選擇按日期或評分排序。

這是第二控制器:AccordionViewController.h

@protocol OptionSelectionDelegate <NSObject> 
-(void)selectedFilter:(NSMutableArray *)articles; 

@end 

@interface AccordionTableViewController : UITableViewController { 

    NSArray *topItems; 
    NSMutableArray *subItems; // array of arrays 
    NSInteger currentExpandedIndex; 
} 

@property (nonatomic, strong) NSMutableArray* articles; 
@property (nonatomic, weak) id<OptionSelectionDelegate> delegate; 

@end 
在InboxViewController.m

我做:

@interface InboxViewController() <UITableViewDelegate, UITableViewDataSource, UINavigationControllerDelegate, OptionSelectionDelegate> 

. . . 

#pragma mark - State Selection Delegate 
-(void)selectedFilter:(NSMutableArray *)articles1 
{ 
    self.articles = articles1; 
    for (int i=0; i<self.articles.count; i++) { 
     Article* a = [self.articles objectAtIndex:i]; 
     NSLog(@"Inbox Sorted Array 1: %d - %@",i, a.date); 
    } 
    [self.tableView reloadData]; 

} 

我稱之爲AccordionVC此方法在didSelectRowAtIndexPath方法是這樣的:

. . . 
self.articles = [sortedArticles mutableCopy]; 
       [self.delegate selectedFilter:self.articles]; 
. . . 

謝謝。將添加任何需要的東西

+0

你在哪裏設置委託? – Cutetare

+0

你在哪裏設置self.delegate? //編輯:Cutetare在我之前說的9秒! :) – mc01

回答

0

在AccordionVC,你缺少的行:

self.delegate = .. //some reference to a InboxViewController 
+0

謝謝你的答案。我將它設置在InboxViewController的prepareForSegue中,它立即工作。 – sermilion