我无法找到这种特殊情况,我必须将两个或多个字符串数组传递并附加到位于第二个ViewController中的TableView中。 我想在两个不同的UILabel中推送两个不同的字符串
我有一些数据通过mainViewController中的UIAlertViewController进入内部
var name = alertController.textFields?[0].text
var number = alertController.textFields?[1].text
然后我拿这个数据,每当我得到一组新的名称/数字时,我将它附加到MainVC中的字符串数组
var playerNames = [String]()
var playerNumbers = [String]()
self.playerNames.append(name!)
self.playerNumbers.append(number!)
现在我使用.xib创建了一个表格视图和一个自定义单元格,我将其调用并设置为自定义标签
第二个ViewController中的TableView
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) ->
UITableViewCell {
customCell.tableViewCellNumber.text = mainVC.playerNumbers[indexPath.row]
customCell.tableViewCellName.text = mainVC.playerNames[indexPath.row]
return customCell
}
因此,对于每个新集合,它都会生成一个名为+ number的新行
我尝试了从userDefaults到performForSegue的任何内容,但它不起作用! 我可以很好地打印数组,但它根本不会显示新行。
编辑:实际问题
好吧我想我误解了NsUserDefaults的使用......目前我在第二个控制器的viewDidLoad中
if ((UserDefaults.standard.array(forKey: "playerNames")) != nil){
let playerNames = (UserDefaults.standard.array(forKey:
"playerNames") as? [String])!
print(playerNames)
}
}
并实际打印新值,现在我希望新的附加值显示在自定义单元格label.text cell.nameLabel.text = The Value
我如何每次检索值并存储它?
如果我尝试使用playerNames,它说它不存在..
答案 0 :(得分:0)
输入数据后是否同步了用户默认值? UserDefaults.synchronize()