如何在隐藏后重新显示UIRefreshControl?

问题描述:

我有一个UITableViewController和UIRefreshControl设置。 refreshControl工作并重新加载tableView。问题是我有一个UISegmentedControl在我的tableView上面,它用不同的数据重新载入tableView,这取决于你点击了哪个段。现在我只想让refreshControl能够在第一个段上工作(这也是默认的),我想为其他两个UISegmentedControl元素禁用它。这里是tableView的截图: UITableView with attached UISegmentedControl如何在隐藏后重新显示UIRefreshControl?

现在,我简单地通过设置self.refreshControl = nil来隐藏它,这工作正常。问题是,一旦我这样做了(通过点击其他UISC元素之一),我无法恢复在默认表中工作。我试过在@“Aktuelle Rezepte”元素被选中后重置self.refreshControl = savedRefreshControl,但这不起作用。我试图进一步禁用简单地使用

[self.refreshControl setEnabled:NO]; 
[self.refreshControl setHidden:YES]; 

隐藏它,然后在需要时重新设置这两个,但这并不能正常工作。你怎么看?我完全错过了什么吗?

我找到了答案 - 这是一个愚蠢的错误。我宣布savedRefreshControl在我的UITableViewController的顶部,但其属性设置为(weak, nonatomic),而不是(strong, nonatomic),这就是为什么重置self.refreshControl没有工作。 正如在其他职位被提及,请确保你不这样做self.refreshControl = nil同时它还是令人耳目一新,因为它搞砸了应用程序和清爽的逻辑。