表视图不显示数据,为什么? (斯威夫特3)

时间:2017-03-30 16:35:47

标签: ios objective-c uitableview swift3 userdefaults

我使用表格视图创建了一个应用程序来保存数据。表视图显示通过UserDefaults保存的数组元素。由于TableViewControllers看起来很丑陋,我做的有点不同:我将TableView放入普通的ViewController中。 我的问题是:即使我尽我所能让TableView显示数据,但它没有,我不知道为什么。谁能帮助我? 这是ViewController的代码:

public Series series1 = new Series
    {
        Name = "Series1",
        Color = Color.Black,
        IsVisibleInLegend = false,
        ChartType = SeriesChartType.Line,
        BorderWidth = 0,
        XValueType = ChartValueType.Double,
        YValueType = ChartValueType.Double
    };

    public StripLine startPositionLine = new StripLine
    {
        BorderColor = Color.Red,
        BorderWidth = 2,
        IntervalOffset = 7
    };

    public StripLine endPositionLine = new StripLine
    {
        BorderColor = Color.Blue,
        BorderWidth = 2,
        IntervalOffset = 11
    };

    private void Form1_Load(object sender, EventArgs e)
    {
        chart1.Series.Clear();

        chart1.ChartAreas[0].AxisX.Minimum = 0;
        chart1.ChartAreas[0].AxisX.Interval = 1;

        //Apparently some series with some points have to be present on the chart before the striplines get displayed
        series1.Points.AddXY(0, 0);
        series1.Points.AddXY(10, 0);

        chart1.Series.Add(series1);

        chart1.ChartAreas[0].AxisX.StripLines.Add(startPositionLine);
        chart1.ChartAreas[0].AxisX.StripLines.Add(endPositionLine);

        chart1.Invalidate();
    }

感谢大家一起来看看!祝你有美好的一天

2 个答案:

答案 0 :(得分:2)

viewDidLoad替换为

override func viewDidLoad() {
    super.viewDidLoad()

    myTableView.dataSource = self
    myTableView.delegate = self

    data.append("test")
    data.append("lol")
    myTableView.reloadData()

}

并将numberOfRowsInSection替换为

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return data.count
    }

并删除myTableView.dataSource = self中的cellForRow

如果代码崩溃,则IB中未连接myTableView

正如评论中所提到的,考虑使用UITableViewController来获得具有预连接数据源和委托的表视图实例。

答案 1 :(得分:0)

您需要在viewDidLoad或类似的地方设置数据源和数据委托。

您正在cellForRowAt内设置数据源,但永远不会调用它!