使用上一视图中文本字段中的数据填充表视图单元格

时间:2016-02-13 22:56:24

标签: ios xcode tableview cell

我想在表视图中填充原型单元格,其中包含用户在先前视图控制器中键入文本字段的信息。我想使用此数据而不是预先确定的数组来设置每个单元格的标题和副标题。如何将视图控制器内的文本字段中的数据传递到表格单元格视图的标题/副标题部分?

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

首先在想要转换到TableViewController的位置实现它:

let textFieldString = yourTextField.text ?? ""
performSegueWithIdentifier("exampleID", sender: textFieldString)

现在在StoryBoard中创建正确的segue!

1)From the whole ViewController to your destination ViewController

2)And don't forget your unique segue-ID

在执行segue之前,将调用委托方法prepareForSegue(...)。在此方法中,您将准备目标ViewController。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
        let targetvc = segue.destinationViewController as? YourTableViewController
        if let targetvc = targetvc
        {
            let yourTextFieldString = sender as? String
            if let yourTextFieldString = yourTextFieldString
            {
                targetvc.yourTextFieldString = yourTextFieldString
            }
        }
}

当执行到目标ViewController的segue时,您的变量(在本例中为“yourTextFieldString”)具有先前设置的数据。

class yourTableViewController : UITableViewController
{
    var yourTextFieldString = "" // This variable has the previous set data
     override func viewDidLoad()
     {
         super.viewDidLoad()
     }
     override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
     {
         let cell = tableView.dequeueReusableCellWithIdentifier("yourCellID", forIndexPath: indexPath)
         cell.textLabel.text = yourTextFieldString
         return cell
    }
}

现在调整原型单元格(不要忘记正确的标识符),然后就完成了。