如何在隐藏后重新显示UIRefreshControl?
问题描述:
我有一个UITableViewController和UIRefreshControl设置。 refreshControl工作并重新加载tableView。问题是我有一个UISegmentedControl在我的tableView上面,它用不同的数据重新载入tableView,这取决于你点击了哪个段。现在我只想让refreshControl能够在第一个段上工作(这也是默认的),我想为其他两个UISegmentedControl元素禁用它。这里是tableView的截图: 如何在隐藏后重新显示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
同时它还是令人耳目一新,因为它搞砸了应用程序和清爽的逻辑。