需要帮助将数据添加到TableView

时间:2015-06-10 15:05:35

标签: ios swift tableview

我的第一个View Controller有一个TableView。

在第二个视图控制器上,用户将输入数据并单击按钮。

我希望此按钮将数据添加到表视图中,但我无法弄清楚如何执行此操作。

var textArray: NSMutableArray! = NSMutableArray()

@IBOutlet weak var tableView: UITableView!

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

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    return UITableViewCell()
}



@IBOutlet weak var addData: UIButton!

@IBAction func addData(sender: AnyObject) {

    self.textArray.addObject(textField.text)
    self.tableView.reloadData()

}

它还会为我的reloadData代码行带来错误。

2 个答案:

答案 0 :(得分:0)

据推测,您引用的代码位于第二个视图控制器中。该视图控制器中的IBAction无法重新加载self.tableview,因为该表位于第一个视图控制器中。

要做你想要的事情所以有几十种方法,每种方法都有优点和缺点。也许最容易实现的是:

  1. 在第二个视图控制器中创建名为textArray的公共变量。
  2. 将prepareForSegue中的公共变量设置为第一个视图控制器中表的数据源。
  3. 将字符串添加到第二个视图控制器self.textArray.addObject(textField.text)的IBAction中的该变量。
  4. self.tableView.reloadData()行添加到第一个视图控制器的viewWillAppear函数中。

答案 1 :(得分:0)

如果您希望用户能够在一个视图中保存数据,然后在另一个视图中加载该数据,则需要在本地或服务器上保存数据以太网。要在本地保存,您可以使用NSUserdefault。

让用户将obejcts添加到数组中。然后使用NSUserdefault将数组保存在手机上以便稍后加载。

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("yourArray", forKey: "nameYourArrayToGetItLater")
defaults.synchronize()

并使用此代码将其恢复,然后将其加载到TableView中。

let defaults = NSUserDefaults.standardUserDefaults()
defaults.stringForKey("nameYourArrayToGetItLater")
"yourArrayforTheTabelView" = defaults

如果要将TableView数据存储在服务器上。您可能希望查看本教程:

http://www.appcoda.com/ios-programming-app-backend-parse/

祝你好运!