我在视图控制器中有一个表,该视图控制器通过字典进行填充,字典中通过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