UseDefault在tableView方法中创建问题

时间:2018-12-11 06:14:34

标签: ios swift xcode nsuserdefaults

我刚刚创建了公交车票预订应用程序。现在,我想保存搜索历史记录(城市名称和日期)并在我的tableView中显示。这就是我在SearchButtonAction中编写的代码。

@IBAction func btnSearchAction(_ sender: Any) {
    if txtTo.text != nil && txtFrom.text != nil {
        arrTo.append(txtTo.text!)
        arrFrom.append(txtTo.text!)

        UserDefault.set(arrTo, forKey: "arrTo")
        UserDefault.set(arrFrom,forKey: "arrFrom")...
    }
}

现在在我的historyViewController上,我像下面这样编码

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

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 200
} 

func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
    return 100
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "RecentCell") as! RecentCell
    cell.selectionStyle = .none
    cell.lblFrom.text = arrFrom[indexPath.row]
    cell.lblTo.text = arrTo[indexPath.row]
    tblSearch.reloadData()
    return cell
}

因此,它一次又一次地调用numberOfRowsInSection方法。即使arr计数不止一个。在UserDefaults中保存两个textField文本的正确方法是什么。

2 个答案:

答案 0 :(得分:0)

tblSearch TableView数据源方法中删除cellForRowAt的重载数据

答案 1 :(得分:0)

当您在import numpy as np df_1 = np.sort(df_master.date.unique()) df_1_df = pd.DataFrame(df_1) df_1_df.columns RangeIndex(start=0, stop=1, step=1) 方法中重新加载tableview时,cellForRowAt将进入循环。因此,您tableview将不会显示。因此,请从tableview方法中删除tblSearch.reloadData()这行。 请检查屏幕截图,以便您更好地了解循环。 http://prntscr.com/lte2mo