不调用简单委托方法

时间:2014-07-07 22:37:58

标签: ios objective-c xcode delegates

我搜索过类似的问题,但我无法理解为什么这不起作用。我现在按照教程和教程项目的所有工作完成了所有工作,但是我做的一切都完全一样,没有结果。

我的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];

}

我在didSelectRowAtIndexPath中的AccordionVC中调用此方法,如下所示:

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

谢谢。将添加任何所需的东西。

1 个答案:

答案 0 :(得分:0)

在AccordionVC中,您错过了一行:

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