Passing data between UITableViewCell and UITableViewController?

前端 未结 2 1974
野性不改
野性不改 2021-01-20 17:00

I created master details template project in xcode 4.6 and I added custom cell with 2 textfields. I also created new class which is subclass of UITableViewCell and inside th

2条回答
  •  不知归路
    2021-01-20 17:49

    You shouldn't keep data inside the UITableViewCell, as it breaks the MVC.

    You need to get a reference of the UITextField on your cell. This is how I do in a login form:

    I have a custom cell subclass called TextFieldCell, it has an outlet called textField, I want that my UITableViewController have references to these UITextFields.

    First I open my storyboard, set the cell class to TextFieldCell and than connect the UITextField to cell textField outlet. Than I add this to the tableView:cellForRowAtIndexPath:

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        (…)
        if (indexPath.row == 0) {
            // Sets the textField of the first cell as the loginTextField.
            self.loginTextField = tCell.textField;
        } else {
            // Sets the textField of the second cell as the passwordTextField.
            self.passwordTextField = tCell.textField;
        }
        tCell.textField.delegate = self;
        (…)
    }
    

    Now I can access the value of my loginTextField and my passwordTextField. I do that on the tableView:cellForRowAtIndexPath: because that's when I'm creating the cell to add to the table view.

提交回复
热议问题