隐藏后如何重新显示UIRefreshControl?

时间:2014-01-23 10:31:49

标签: ios objective-c uitableview uirefreshcontrol

我有一个UITableViewController和UIRefreshControl设置。 refreshControl工作并重新加载tableView。问题是我在tableView上面有一个UISegmentedControl,它使用不同的数据重新加载tableView,具体取决于你点击的是哪个段。现在我只希望refreshControl能够处理第一个段(这也是默认值),我想为其他两个UISegmentedControl元素禁用它。这是tableView的屏幕截图:  UITableView with attached UISegmentedControl

现在,我只需设置self.refreshControl = nil就可以隐藏它,这样可以正常工作。问题是,一旦我完成了(通过点击其他UISC元素之一),我就无法恢复在默认表格中工作。我试过在@" Aktuelle Rezepte"之后重置self.refreshControl = savedRefreshControl。选择了元素,但这不起作用。我进一步尝试使用

简单地禁用和隐藏它
[self.refreshControl setEnabled:NO];
[self.refreshControl setHidden:YES];

然后在需要时重置这两个,但这不起作用。你的想法是什么?我完全错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案 - 这是一个愚蠢的错误。我在我的UITableViewController顶部声明了savedRefreshControl,但是将其属性设置为(weak, nonatomic)而不是(strong, nonatomic),这就是为什么重置self.refreshControl不起作用的原因。 正如其他帖子中所提到的那样,请确保在self.refreshControl = nil仍然刷新时不要这样做,因为它会搞砸应用程序并刷新逻辑。