包含TableView的容器视图根据输入Swift的数量更改行数

时间:2015-12-29 21:10:09

标签: ios iphone swift uitableview

我是swift以及创建iOS应用程序的新手,我想我会创建一个简单的应用程序来计算输入到TextField中的数字的平均值。 averageViewController也有一个包含TableView的容器视图。一旦这个人击中了" Next"按钮我希望TableView显示已输入的数字。 (每个单元格标签都有一个数字)。

这是我averageViewController中的segue方法以及用户按下按钮时使用的函数:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    if segue.identifier == "sendResult" {
    let inputArray = segue.destinationViewController as! averageTableViewController

    inputArray.arrayFromSegue = average.getArray()
    }

}



@IBAction func nextButton(sender: UIButton) {
    average.arrayInput(((inputTextField.text!) as NSString).doubleValue)
    calcAverage()

    inputTextField.text=nil
}

这是我为averageTableViewController创建的代码:

class averageTableViewController: UITableViewController {

    var arrayFromSegue = NSMutableArray()
    var arrayUsed = NSMutableArray()

    override func viewDidLoad() {
        super.viewDidLoad()
        arrayUsed = arrayFromSegue

    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var Cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell

        Cell.textLabel?.text = String(arrayUsed[indexPath.row])
        return Cell

    }

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

我做了很多研究,我相信我的一个错误就是我正在做的动作(显示)并没有产生正确的结果。

1 个答案:

答案 0 :(得分:1)

问题不在你身上。如果您想根据输入的数量更改行数,则应更新阵列数据并reload表格。在您的情况下,您可以这样改变:

  1. 创建变量保留tableViewController,在您的情况下可以输入名称为:inputArray

    inputArray = segue.destinationViewController as! averageTableViewController
    
  2. 当您点按nextbutton时,您更新了数组平均值并将其分配给tableViewConroller`inputArray并重新加载:

    inputArray.arrayUsed = average.getArray()
    inputArray.tableView.reloadData()
    
  3. 如果您有任何问题,请不要犹豫,问我。我会帮助你的。

    您可以查看我的演示:Demo

    您的项目泄漏segue到tableviewcontroller:请按照以下步骤修复项目:

    • 从平均值到平均值的范围

    enter image description here

    • 让它嵌入:

    enter image description here

    • 选择它并将其命名为sendResult

    enter image description here