我正在使用各种教程来帮助我学习使用Swift进行iOS开发。
我遇到的问题是了解如何分离我的代码但仍然有相同的结果。
我的例子:
在界面构建器中,我有一个带有UITableView的屏幕。 我已将它连接到一个名为TableControllerClass的单独类:
class TableClass: UITableViewController, UITableViewDelegate, UITableViewDataSource{
@IBOutlet var myTable: UITableView!
var tableData:NSArray = NSArray()
func setData(data:NSArray){
self.tableData = data
println("reloaded table")
myTable?.reloadData()
}
override func viewDidLoad() {
myTable.delegate = self
myTable.dataSource = self
println("Hi there!")
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
println("holla")
return tableData.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "myCell")
cell.textLabel?.text = "Hello World"
cell.detailTextLabel?.text = "Hello Again!"
return cell
}
在原来的 ViewController 中,我从数据检索类中调用一个方法:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
var search = ProfileSearch()
search.getProfiles("helloWorld")
NSNotificationCenter.defaultCenter().addObserver(self, selector: "dataDownloaded:", name: "tableDataDownloaded", object: nil)
}
func dataDownloaded(notif:NSNotification){
var data:NSArray = notif.object as NSArray
println("changing table")
tableController.setData(data)
}
到目前为止,这么好。我得到结果和使用我的dataDownloaded方法,我能够将数据发送到Table控制器类。
我遇到的问题是根据这些新数据更新表格: 当我在tableView上调用reloadData()时,似乎没有任何事情发生,我的表只是保持空白。
我有什么遗失的吗?