如何在NavigationController中的UITableViews之间传递数据?

时间:2016-11-14 14:33:40

标签: ios uitableview swift3

在我的第一个tableViewController中有navigationViewController.push(myNextController, animated: true),我想要转到另一个TableViewController。我想要解决的问题是,当我在第一个tableViewController中选择一行时,我想转到下一个tableview。现在,当我选择一行时,我的下一个tableVIew具有相同的数据。我希望每个单元格都有不同的保存单元格

第二个表格视图控制器

标题是导航标题,myArray是一个数组:

 // globally declared
var dataArray = [String]()
var myArray = [String]()

 // this function is in my second table view controller, viewDidLoad()
func data(){
    myArray = UserDefaults.standard.stringArray(forKey: "Key")!
    dataArray = myArray
}

The dataArray is:

   override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as UITableViewCell

    if let getData = UserDefaults.standard.stringArray(forKey:"key") {
        cell.textLabel?.text = getData[indexPath.row]
    }

     tableView.reloadData()
     return cell
   }

第一个表格视图控制器

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as UITableViewCell
    cell.backgroundColor = UIColorUtil.rgb(rgbValue: 0xFFFFF9)

    let getData = UserDefaults.standard.stringArray(forKey: "category")!
    let nextViewController = TableView()
    nextViewController._titile = getData[indexPath.row]

    // so I access myArray from second table view controller because I want to 
    //get data of each selected cell. But this is a problem. 

    nextViewController.myArray = getData
    self.navigationController?.pushViewController(nextViewController, animated:true)

}

   override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as UITableViewCell

if let getData = UserDefaults.standard.stringArray(forKey:"category") {
    cell.textLabel?.text = getData[indexPath.row]
}

 return cell

}

为什么他们有相同的细胞?如何在不使用故事板的情况下完成此任务?我想以编程方式编写代码。顺便说一句,我也在使用UITabBar。谢谢!

0 个答案:

没有答案