我的第一个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
代码行带来错误。
答案 0 :(得分:0)
据推测,您引用的代码位于第二个视图控制器中。该视图控制器中的IBAction无法重新加载self.tableview,因为该表位于第一个视图控制器中。
要做你想要的事情所以有几十种方法,每种方法都有优点和缺点。也许最容易实现的是:
textArray
的公共变量。 self.textArray.addObject(textField.text)
的IBAction中的该变量。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数据存储在服务器上。您可能希望查看本教程:
祝你好运!