我想從我的Task類的HomeViewController中調用函數reloadTable
。但我一直被拋出如何從另一個ViewController調用函數
在類型'HomeViewController'上使用實例成員'reloadTable';你的意思是使用'HomeViewController'類型的值嗎?
這是我的HomeViewController代碼:
import UIKit
import Alamofire
import SwiftyJSON
class HomeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
func reloadTable() {
self.displayTask.reloadData()
}
}
這是我的任務等級:
import Foundation
import Alamofire
import SwiftyJSON
class Tasks {
static let sharedInstance = Tasks()
var datas: [JSON] = []
func getTaskDetails(){
Alamofire.request(.GET, Data.weeklyEndpoint).validate().responseJSON { response in
switch response.result {
case .Success(let data):
let json = JSON(data)
if let buildings = json.array {
for building in buildings {
if let startDate = building["start_date"].string{
print(startDate)
}
if let tasks = building["tasks"].array{
Tasks.sharedInstance.datas = tasks
HomeViewController.reloadTable()
for task in tasks {
if let taskName = task["task_name"].string {
print(taskName)
}
}
}
}
}
case .Failure(let error):
print("Request failed with error: \(error)")
}
}
}
// for prevent from creating this class object
private init() { }
}
嗨@Laffen你爲什麼把onCompletion :([任務]) - >()?我不確定這是如何工作的 – noobdev
我建議你看看我提供的'Closures'鏈接,文檔將詳細解釋什麼/如何以及爲什麼。你可以在你想要包含閉包的函數上定義'onCompletion';你可以從那個函數中調用'onCompletion',在那裏返回所請求的數據。當你調用'getTaskDetails'時,你定義了'onCompletion'的主體,這是當你從定義的函數中調用閉包時,告訴閉包該做什麼的地方。這有點毛茸茸的... – Laffen