保持代码分离 - Swift Table View控制器

时间:2015-02-03 11:45:08

标签: ios uitableview swift

我正在使用各种教程来帮助我学习使用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()时,似乎没有任何事情发生,我的表只是保持空白。

我有什么遗失的吗?

0 个答案:

没有答案