将数组数据从ViewController传递到TableView

时间:2017-09-13 22:40:39

标签: ios arrays swift uitableview tableview

我无法找到这种特殊情况,我必须将两个或多个字符串数组传递并附加到位于第二个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的新行 customCell image

我尝试了从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,它说它不存在..

1 个答案:

答案 0 :(得分:0)

输入数据后是否同步了用户默认值? UserDefaults.synchronize()