【问题标题】:UITableViewController Refresh control is nilUITableViewController 刷新控件为零
【发布时间】:2016-05-24 18:43:09
【问题描述】:

我的项目中有一个 UITableViewController,并在 Storyboard 中将“刷新”设置为启用。但是,它的出口是零。

像这样使用它

self.refreshControl

即使我自定义了从情节提要到 viewcontrolelr 的出口,它也是零。 它适用于我项目中的其他表视图,但不适用于此。

有什么我可能错过的快点吗?

【问题讨论】:

  • 该属性的默认值为 nil。您需要先实例化一个 UIRefreshControl 并将其分配给 self.refreshControl,然后才能存在。
  • 但我不需要在其他视图控制器中这样做?我只是在情节提要中启用了它,它开箱即用。这就是使用 UiTableviewController 时应该做的事情。但在这种特殊情况下却没有,这很奇怪,我想我可能错过了一些东西

标签: ios swift uitableview cocoa


【解决方案1】:

在情节提要中选择您的 TableViewController 并启用刷新。如附图所示。我希望这会有所帮助。

【讨论】:

  • 重要提示:确保选择 UITableViewController!不是“表视图”。我刚刚花了半个小时试图找到解决方案,却发现我正在选择表格视图。
【解决方案2】:

您通过情节提要创建的很好。尝试从情节提要中删除并再次添加。

然后在您的 viewDidLoad 方法中启动它

点赞self.refreshControl = UIRefreshControl()

或者您可以通过编程方式创建它会很容易。

创建一个全局属性

var refreshControl : UIRefreshControl?

在viewDidLoad中添加

self.refreshControl = UIRefreshControl()

if let refreshControl = self.refreshControl{
   refreshControl.addTarget(self, action: #selector(viewCtrl.refresh(_:)), forControlEvents: UIControlEvents.ValueChanged)
   self.Tableview.addSubview(refreshControl)
}

这将解决您的问题。

【讨论】:

  • 是的,我想过。但是我也必须自己做活动指示器。我只是想知道为什么它不起作用...但是谢谢,我想我会这样做
  • 活动指示器也可以以相同的方式以编程方式完成。
【解决方案3】:
self.refreshControl = UIRefreshControl()
self.refreshControl?.addTarget(self, action: #selector(self.refreshTableView(sender:)), for: .valueChanged)

不需要使用-> tableView.addSubView(refreshControl!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    相关资源
    最近更新 更多