ios - 如何根据segmentedControl的选定索引更改刷新器的功能

标签 ios swift firebase refresh uisegmentedcontrol

我有一台带有一个segmentedControl的vc,我希望每次更改segmentedControl的索引时都可以更改刷新器调用的功能

lazy var refresher: UIRefreshControl = {
    let refreshControl = UIRefreshControl()
    if (segmentedControl.selectedSegmentIndex == 0){
        refreshControl.addTarget(self, action: #selector(loadRecommend1), for: .valueChanged)
    } else if (segmentedControl.selectedSegmentIndex == 1){
        refreshControl.addTarget(self, action: #selector(loadCompletePosts1), for: .valueChanged)
    } else if (segmentedControl.selectedSegmentIndex == 2){
        refreshControl.addTarget(self, action: #selector(loadCompletePostsByHealthy1), for: .valueChanged)
    }
    return refreshControl
}()
当前,尽管segmentedControl中已选择了项,但每次都会调用第一个函数

最佳答案

lazy var仅在创建此实例时调用一次,而不是在更改段索引时调用,因此您可以在1个选择器方法内更改该目标选择器,或者只有一个根据当前段索引执行方法的选择器,例如

refreshControl.addTarget(self, action: #selector(allCalls), for: .valueChanged)
@objc func allCalls(_ sender:UIRefreshControl) {
   if (segmentedControl.selectedSegmentIndex == 0){
        loadRecommend1()
   } else if (segmentedControl.selectedSegmentIndex == 1){
        loadCompletePosts1() 
   } else if (segmentedControl.selectedSegmentIndex == 2){
        loadCompletePostsByHealthy1() 
   }
}

关于ios - 如何根据segmentedControl的选定索引更改刷新器的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63204281/

相关文章:

ios - merge 2 个分支时 Xcode 6.0.1 崩溃

android - flutter_session 和 shared_preferences 在 flutter 中不能一起工作?

ios - 使用 UIAppearance 设置 View Controller 的直接 View 背景颜色

swift 3.0 语法问题

arrays - 将恰好 2 个相等的元素添加到数组中

android - 将数据保存在模型类或来自 Firebase 的列表中

firebase - 为什么 Firebase 身份验证在返回到我的应用之前使用 "middleware"重定向?

ios - 打开宽度可变的关闭侧边菜单(在 xcode 中)

ios - 调整 View 的大小使其他 View 在 UITableViewCell 中反弹

firebase - Cloud Functions for Firebase 将 promise 数组返回给 GCF