NSUserDefaults将tableview保存并读入为Array

时间:2016-03-08 17:00:38

标签: arrays swift tableview nsuserdefaults

好,所以我让用户在文本字段中输入名称,按钮将名称传递给另一个视图中的tableview,表视图列出了名称,但是当添加新名称时,它会覆盖以前的名称而不是列出所有名称名称添加到tableview。这是我的代码:

viewcontroller1:

     @IBAction func addPlant(sender: AnyObject) {



        let array = self.title
        NSUserDefaults.standardUserDefaults().setObject(array, forKey: "userName")
        NSUserDefaults.standardUserDefaults().synchronize()
}

viewcontroller2:

    @IBOutlet weak var tableView: UITableView!

var userDefaults = NSUserDefaults.standardUserDefaults()

var ourText = String()

var textArray:[String] = [String]()

override func viewDidLoad() {
    super.viewDidLoad()


    //self.tableview.delegate = self
    self.tableView.dataSource = self

    ourText = userDefaults.stringForKey("userName")!
    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) 
    cell.textLabel?.text = textArray[indexPath.row]

    return cell
}

1 个答案:

答案 0 :(得分:0)

您可以使用

 textArray = NSUserDefaults.standardUserDefaults().arrayForKey("userName") 

或者

 textArray = NSUserDefaults.standardUserDefaults().objectForKey("userName")