Ich arbeite an der TableView in Swift 2.2 in Xcode 7.3.1 und ich bin sicher, von meinem Code, weil es nicht das erste Mal für mich ist, mit TableView zu tun, ich ' m ziehen Daten korrekt vom Server und speicherte es in Array, aber ich stelle fest, dass die zwei Funktionen, die sich auf die Tabellenansicht beziehen, nicht aufgerufen werden, so dass die Tabellenansicht für mich leer erscheint! Ich habe Zelle und verknüpfte Tabellenansicht mit Ansicht auch vom Layout hinzugefügt.Tableview zeigt keine Daten in swift 2
Ich weiß nicht, wo das Problem ist!
class studentTeacherList: UIViewController , UITableViewDataSource,UITableViewDelegate {
@IBOutlet weak var studentParentTable: UITableView!
@IBOutlet weak var loadIndicator: UIActivityIndicatorView!
var username:String!
var fromSender: String?
var toRec: String?
var student_id = [Int]()
var parent_id = [String]()
var student_names = [String]()
var parent_name = [String]()
//Sent Data
var s_id:Int = 0
var s_name = ""
var p_id = ""
var p_name = ""
override func viewDidLoad() {
super.viewDidLoad()
studentParentTable.delegate = self
studentParentTable.dataSource = self
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
username = prefs.objectForKey("user")as! String
fromSender = prefs.objectForKey("Sender")as! String
toRec = prefs.objectForKey("Receiver")as! String
self.loadIndicator.startAnimating()
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {() -> Void in
self.loadList()
//self.studentParentTable.reloadData()
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.loadIndicator.stopAnimating()
})
});
studentParentTable.reloadData()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return student_names.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//This method to define each cell at Table View
let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "cell")
cell.textLabel?.text = student_names[indexPath.row]
cell.detailTextLabel?.text = parent_name[indexPath.row]
return cell
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func backButton(sender: AnyObject) {
self.dismissViewControllerAnimated(true, completion: nil)
}
func loadList()
{
var normallink = "mylinkhere"
normallink = normallink + "?teacherid=" + self.username
var studentParentURL:NSURL = NSURL (string: normallink)!
let data = NSData(contentsOfURL: studentParentURL)!
do {
let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)
if let alldata = json["data"] as? [[String: AnyObject]] {
for onedata in alldata {
if let stu_id = onedata["id"] as? Int {
student_id.append(stu_id)
}
if let stu_name = onedata["studentName"] as? String {
student_names.append(stu_name)
}
if let par_id = onedata["parentId"] as? String {
parent_id.append(par_id)
}
if let par_name = onedata["parentName"] as? String {
parent_name.append(par_name)
}
}
}
} catch {
print("Error Serializing JSON: \(error)")
}
print(student_names.count)
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
s_id = student_id[indexPath.row]
s_name = student_names[indexPath.row]
p_id = parent_id[indexPath.row]
p_name = parent_name[indexPath.row]
}
}
Versuchen Sie, die reload() aufrufen, um nach 'self.loadIndicator.stopAnimating bewegen()' – WMios
@WMios ja arbeitet es jetzt vielen Dank für Ihre Anmerkung :) –
@WMios ich etwas in meinem Beitrag zu speichern Wert aktualisiert, wenn auf klicken jede Zeile in der Tabellenansicht, aber es gibt mir aus Index –