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

时间:2015-05-21 13:19:29

标签: ios uitableview swift nsuserdefaults

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

这是我的FirstViewController(第一个UITableView

enter image description here

第二个ViewController(第二个UITableView)只有UILabel

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

这是我的代码(在firstViewController中),但正如你在这里看到的那样我每次都发送整个数组,是否可以每次发送字符串并将它们一起发送到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
}

1 个答案:

答案 0 :(得分:2)

使用以下代码更新您的代码:

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
    }
}