我在視圖控制器中有一個表,該視圖控制器通過字典進行填充,字典中通過JSON請求檢索信息。在viewDidLoad()
功能,我認爲這種檢索被添加到`IncompletedDeadlines字典中的數據的功能:表僅在交互時顯示,而不是默認情況下
override func viewDidLoad() {
super.viewDidLoad()
self.IncompleteDeadlines = [String:AnyObject]()
self.retrieveIncompletedDeadlines()
}
一切不過只是在工作表中顯示時互動。我想,也許,以顯示錶出現在視圖中的時刻是通過添加tableView.reload
到viewDidAppear
爲所以最好的辦法:
override func viewDidAppear(_ animated: Bool) {
self.tableView.reloadData()
}
但這不能解決問題。爲了清晰起見,我附上了照片。圖片一顯示視圖出現的時刻。一旦表格與互動,圖片2只發生。所以我的問題是如何讓表格立即顯示?據我所知,可能是因爲負載的延遲,但我不應該與它交互爲它顯示:
當視圖被交互即刷卡:
的retrieveIncompletedDeadlines()
函數爲這樣:
func retrieveIncompletedDeadlines(){
let myUrl = NSURL(string: "https://www.example.com/scripts/retrieveIncompleteDeadlines.php");
let request = NSMutableURLRequest(url:myUrl! as URL)
let user_id = UserDetails[0]
request.httpMethod = "POST";
let postString = "user_id=\(user_id)";
request.httpBody = postString.data(using: String.Encoding.utf8);
let task = URLSession.shared.dataTask(with: request as URLRequest) {
data, response, error in
if error != nil {
print("error=\(String(describing: error))")
return
}
var err: NSError?
do {
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
if let parseJSON = json {
let checker:String = parseJSON["status"] as! String;
if(checker == "Success"){
let resultValue = parseJSON["deadlines"] as! [String:AnyObject]
self.IncompleteDeadlines = resultValue
}
self.tableView.reloadData()
}
} catch let error as NSError {
err = error
print(err!);
}
}
task.resume();
self.tableView.reloadData()
}
可以顯示'self.retrieveIncompletedDeadlines()'?你在哪裏得到json? – mat
它是,我已經加了它 – Nouman
我還是看不到它 – mat