如何从另一个方法重新加载Tableview数据

时间:2016-08-31 16:01:41

标签: ios xcode uitableview

有没有人知道如何构建我的代码,我可以访问tableview变量并从changevalues方法重新加载数据。或者给我一些提示,如何做到这一点,因为我已经没有想法,我甚至不知道该怎么去谷歌。感谢

我制作了一个显示我情况的代码示例。我的问题:我想在changevalues方法中重新加载tableview数据。我在CustomView init()方法中初始化了tableview和segmentedControl按钮。在changevalues中加载数据的目的是因为当用户选择特定的段时,tableview应该刷新新数据。

主要的挑战是如何从changevalues方法访问tableview?

UITableView和UISegmentedControl都是CustomView的子视图

如果我的问题是重复的,请参考那个问题,因为我已经搜索了我的问题的答案,但运气好的话。

class CustomView: UIView, UITableViewDataSource, UITableViewDelegate {

    var changingTableviewData = []

    override init(frame: CGRect) {
        var tableView = UITableView(blah...)
        tableview.background...
        tableview.registercell...
        tableview.delegate..

        var customSegmentedB = UISegmentedcontrol(blah)
        customSegmentedB.frame...
        customsegmentedB.addTarget(self, action: "changevalues:", forControlEvents: .ValueChanged)

    }


    func changevalues(sender: UISegmentedControl) {
        switch sender.selectedSegmentIndex {
        case 1:
            // I want to reload tableview Data
        case 2:
            // Also reload data
        default:
            // Also reload data
        }
    }



}

2 个答案:

答案 0 :(得分:1)

只需添加self.tableView.reloadData()

即可

答案 1 :(得分:1)

class CustomView: UIView, UITableViewDataSource, UITableViewDelegate {

var changingTableviewData = []
var tableView: UITableView?

override init(frame: CGRect) {
    tableView = UITableView(blah...)
    tableview.background...
    tableview.registercell...
    tableview.delegate..

    var customSegmentedB = UISegmentedcontrol(blah)
    customSegmentedB.frame...
    customsegmentedB.addTarget(self, action: "changevalues:", forControlEvents: .ValueChanged)

}


func changevalues(sender: UISegmentedControl) {
    tableView?.reloadData()
}

}