ios – 使用NSUserDefaults将字符串数组保存到另一个UITableView中

我有两个带自定义单元格的UITableView,第一个UITableView在UILabel和UIButton中有字符串数组.

这是我的FirstViewController(第一个UITableView)

而secondViewController(第二个UITableView)只有UILabel.

我要做的是点击例如在第二个单元格UIButton“添加到第二个表格”并使用NSUserDefaults将其传递到第二个ViewController,当我点击第一个单元格时UIButton“添加到第二个表格”它应保留第一个值并将其附加到该值并将其添加到secondViewController.

这是我的代码(在firstViewController中),但正如你在这里看到的那样我每次都发送整个数组,是否可以每次发送String并将它们一起附加到NSUserDefaults中的数组中,然后在第二个UITableView中检索它:

func add(sender:AnyObject){
        NSUserDefaults.standardUserDefaults().setObject(array, forKey: "Array")
    }

我试图以这种方式发送它,但它只发送一个字符串而不是一个字符串数组:

func add(sender:AnyObject){
        NSUserDefaults.standardUserDefaults().setObject(array[sender.tag], forKey: "Array")
    }

secondViewController中的代码:

if (NSUserDefaults.standardUserDefaults().stringForKey("Array") != nil){
    array  =  NSUserDefaults.standardUserDefaults().objectForKey("Array")! as! NSArray
}

最佳答案 使用以下代码更新代码:

func add(sender:AnyObject){
if (NSUserDefaults.standardUserDefaults().stringForKey("Array") != nil){
    array1  =  NSUserDefaults.standardUserDefaults().objectForKey("Array")! as! NSArray
}
 array1.append(array[sender.tag])
 NSUserDefaults.standardUserDefaults().setObject(array1, forKey: "Array")
 NSUserDefaults.standardUserDefaults().synchronize()
}

secondViewController中的代码:

  if (NSUserDefaults.standardUserDefaults().stringForKey("Array") != nil){
        array  =  NSUserDefaults.standardUserDefaults().objectForKey("Array")! as! NSArray
    }
}
点赞