2

我无法刷新我的TVC。当我向下拖动刷新时它崩溃了。图标在那里,但随后退出。我敢肯定它很简单。有类似的问题尚未考虑。

取自我的 viewDidLoad 方法体:

refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self
                   action:@selector(refreshInvoked:forState:)
         forControlEvents:UIControlEventValueChanged];
[self.tableView addSubview:refreshControl];

refreshControl.attributedTitle = [[NSAttributedString alloc] initWithString:title
                                                            attributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica" size:13.0]}];
[self refreshFeed];

其中指的是:

-(void)refreshFeed 
{
   RSSLoader* rss = [[RSSLoader alloc] init];    
   [rss fetchRssWithURL:feedURL
            complete:^(NSString *title, NSArray *results) {
                dispatch_queue_t downloadQueue = dispatch_queue_create("downloader",NULL);
                dispatch_async(downloadQueue, ^{
                _objects = results;
                    [self.tableView reloadData];
                //completed fetching the RSS
                dispatch_async(dispatch_get_main_queue(), ^{
     //               [(HeaderView*)self.tableView.tableHeaderView setText:title];
                    // [(ArticleItem*)self.tableView.]
                });
                });
    }];
}
4

2 回答 2

4

UIRefreshControl 并不是要添加为子视图...这样做会给您带来一些麻烦,您需要在 VC dealloc 上取消注册其目标...否则,当 UIRefreshControl 调用您死掉的 VC 时,您可能会遇到一些问题(因为它没有不要对你的 VC 保持弱或强的引用)

于 2013-10-01T16:29:17.550 回答
3

将您的操作方法更改为:

[refreshControl addTarget:self
                   action:@selector(refreshFeed)
         forControlEvents:UIControlEventValueChanged];

看起来你指的refreshInvoked:forState:是自我中不存在的东西。

于 2013-02-25T22:32:51.047 回答