【发布时间】:2015-09-01 13:24:48
【问题描述】:
当我们在 textField 中键入内容并按下按钮时,它会将 textField 的内容保存到 Nsuserdefaults 中。在其他视图控制器中,TableView 读取 NSUserDefaults 并仅显示一个单元格。当我们返回第一个 ViewController 并在 textField 中键入其他内容并再次按下按钮时,我们只会再次获得 tableVIew 中的一个单元格。当我们在 textField 中输入内容时,tableView 如何显示多个单元格?
ViewController.swift
class ViewController: UIViewController {
@IBOutlet weak var textField: UITextField!
var defaults = NSUserDefaults.standardUserDefaults()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func add2(sender: UIButton) {
var connection = self.textField.text
defaults.setObject(connection, forKey: "text")
}
}
ViewController2.swift
class ViewController2: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var defaults = NSUserDefaults.standardUserDefaults()
var ourText = String()
var textArray:[String] = [String]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.tableView.delegate = self
self.tableView.dataSource = self
ourText = defaults.stringForKey("text")!
textArray.append(ourText)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return textArray.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! UITableViewCell
cell.textLabel?.text = textArray[indexPath.row]
return cell
}
}
【问题讨论】: