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

Saving array of strings using NSUserDefaults into another UITableView

我有两个带有自定义单元格的 UITableView,第一个 UITableViewUILabelUIButton 中有字符串数组。

这是我的FirstViewController(第一个UITableView)

而secondViewController(secondUITableView)只有UILabel

我想要做的是单击第二个单元格 UIButton "add to second table" 并使用 NSUserDefaults 将其传递到 secondViewController 的数组中,当我单击第一个单元格 UIButton "add to second table" 它应该保留第一个值并附加此值并将其添加到 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
    }
}