Jestem nowy Swift i iOS rozwoju i staram się realizować UITableView programowo bez użycia XIb lub storyboardy. To jest mój kod:Tworzenie UITableView programowo w Swift
ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let table: UITableViewController = MyTableViewController()
let tableView: UITableView = UITableView()
tableView.frame = CGRect(x: 10, y: 10, width: 100, height: 500)
tableView.dataSource = table
tableView.delegate = table
self.view.addSubview(tableView)
}
}
MyTableViewController.swift
import UIKit
class MyTableViewController: UITableViewController {
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
NSLog("sections")
return 2
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
NSLog("rows")
return 3
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
NSLog("get cell")
let cell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: "Cell")
cell.textLabel!.text = "foo"
return cell
}
}
Ale kiedy uruchomić aplikację, wszystko mam jest pusta tabela. W logu widzę kilka wierszy sections
i rows
, ale nie ma ich get cell
. Jak mogę naprawić ten kod, aby uzyskać tabelę z 6 wierszami tekstu foo
?
Dlaczego masz zarówno "ViewController" z własnym widokiem tabeli i 'MyTableViewController', które również mają swój własny widok tabeli? – rmaddy
'MyTableViewController' jest wydawane po' viewDidLoad'. Więc spróbuj zachować referencję. –
Jeśli dopiero zaczynasz korzystać z iOS i Swift, zdecydowanie zalecamy skorzystanie z samouczka w Internecie lub iTunesU. Kurs Stanford na iTunesU o nazwie 'Developing iOS 9 Apps with Swift' wyjaśni, jak wyglądają wykresy obiektów i jak korzystać ze struktur iOS. –