我有問題UITableView
。其實,下面的代碼工作正常,否則表格視圖。在我的項目中,當我點擊按鈕,然後打開新的視圖控制器。新的View控制器有一個UITableView
從JSON動態加載tableview數據。問題是當我點擊按鈕時,tableView數據沒有顯示。它看起來空白的屏幕。然後我點擊視圖控制器中的任何地方,然後突然顯示tableview數據。何我解決這個問題?提前致謝!Tableview reloads但不顯示,如果我沒有點擊在Swift 2.0 ViewController的任何地方?
代碼,我嘗試
import UIKit
class Events: UIViewController,UITableViewDelegate,UITableViewDataSource {
@IBOutlet var tableView: UITableView!
override func viewDidLoad()
{
super.viewDidLoad()
retrieveDataFromJASON()
}
var events : [[String: AnyObject]] = [[String: AnyObject]]()
var dateAndTime : [[String: AnyObject]] = [[String: AnyObject]]()
func retrieveDataFromJASON()
{
let URL = NSURL(string: "http://portal.shineevents.co.in/portal/api_load/app_load_call")
let requestURL = NSMutableURLRequest(URL: URL!)
requestURL.HTTPMethod = "POST"
let postString = "api=event_list"
requestURL.addValue("123456", forHTTPHeaderField: "X-API-KEY")
requestURL.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
let task = NSURLSession.sharedSession().dataTaskWithRequest(requestURL) { data, response, error in
guard error == nil && data != nil else {
print("error=\(error)")
return
}
if let httpStatus = response as? NSHTTPURLResponse where httpStatus.statusCode != 200 {
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}
let responseString2 = try! NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)
//print(responseString2) /*prints whole JSON Data*/
self.events = (responseString2["event_listing"] as? [[String: AnyObject]])!
self.tableView.reloadData()
//print(self.events[0]["event_details"])
}
task.resume()
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return events.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = self.tableView.dequeueReusableCellWithIdentifier("eventCell", forIndexPath: indexPath) as! EventTableViewCell
cell.eventName.text = events[indexPath.row]["event_details"] as? String
cell.eventDate.text = events[indexPath.row]["modified_date"] as? String
cell.eventTime.hidden = true
cell.rowNumber.text = String(indexPath.row+1)
return cell
}
screenshot1:在一開始並未顯示出任何數據(15秒後顯示)
sceenshot2:表視圖顯示數據突然當我點擊它(以下2秒)
哇很好的答案。即使增加活動指標是superb.thanks Mr.Nirav :) –
歡迎隊友,快樂編碼:) –