2017-08-14 48 views
-1

這裏在下面的代碼中,創建一個TableViewController並且它的tableView和refreshControl屬性被設置。但是,即使沒有將TableViewController作爲子視圖添加到View Controller視圖,刷新控件也會開始工作。很好奇這是怎麼發生的?刷新控制設置爲TableViewController即使沒有將其添加爲子視圖

@IBOutlet weak var dashBoardTableView: UITableView! 

let refreshControl = UIRefreshControl() 

func configureRefreshControl() 
{ 
    refreshControl.addTarget(self, action: #selector(self.pullToRefresh) , for: .valueChanged) 
    //UIRefreshControl will not work properly without embedding it in a UITableViewController 
    let tableViewContainerVC = UITableViewController() 
    tableViewContainerVC.tableView = dashBoardTableView 
    tableViewContainerVC.refreshControl = refreshControl 
} 
+0

你爲什麼初始化另一個'UITableViewController'?如果你做了'dashBoardTableView.refreshControl = refreshControl',就應該足夠了。 – kchromik

+0

@kchromik dashBoardTableView是UITableView的子類,它沒有refreshControl屬性。 – Vaquita

回答

1

這很可能是蘋果開發者在做這樣的UITableViewController件事:

var refreshControl:UIRefreshControl { 
    didSet{ 
     //...... 
     self.tableView.tableHeaderView?.addSubview(refreshControl) 
     //...... 
    } 
} 

所以RefreshController工作後,立即:tableViewContainerVC.refreshControl = refreshControl

相關問題