ios - 从模式中选择数据后如何在 UITableViewCell 中刷新 UITextField

标签 ios uitableview uitextfield modalviewcontroller

我有一个带有 UITextFields 的 TableView 来构建一个表单。然后我在工具栏中有一个按钮,它启动一个模态视图 Controller 来选择一些数据,然后将这些数据传回 tableview。但是,所选的新数据不会使用 textField.text = valueReturnedFromModal 语法刷新到 UITextField 中。有什么我想念的吗?

我看到数据从模式中正确返回,所以这不是问题。我只是无法强制 UITextField 使用新数据进行刷新。我也尝试过在 tableview 上强制执行 reloadData。

所以从模态视图来看,这是传回数据的代码:

- (void)doneAccountSelection:(id)sender
{
    [delegate didSelectAccount:currentAccount];
    [self dismissModalViewControllerAnimated:YES];
}

这是委托(delegate)中的实际方法:

- (void)didSelectAccount:(SFAccount *)selectedAccount
{
    //Ensure a valid deal exists for the account to be attached to
    [self createDealObjectIfNeeded];

    //Set the deal account
    [self.deal setAccount:selectedAccount];

    //Refresh the text fields
    //Tag 3: Account Name field
    UITextField *acct_name = (UITextField *) [self.view viewWithTag:3];
    [acct_name setText:self.deal.account.field_acct_name_value];

    //Tag 4: Account City field
    UITextField *acct_city = (UITextField *) [self.view viewWithTag:4];
    [acct_city setText:self.deal.account.field_acct_city_value];

    //Save the context changes. A new deal gets created above if one does not exist.
    if ([self saveModel]) NSLog(@"Acct object created, attached to deal successfully!");

    [self.tableView reloadData];
}

最佳答案

您介意发布设置文本字段数据的代码和将数据传回 TableView 的代码吗?

回答:

看起来您正在正确设置数据,但是,您在发送委托(delegate)消息后关闭了模态视图 Controller 。在这种情况下,甚至在 dismissModalViewControllerAnimated: 结束之后才创建 TableView 。这意味着文本字段在 View 出现之前为 NULL。我的建议是打电话

[self dismissModalViewControllerAnimated:YES];

作为 didSelectAccount: 委托(delegate)方法中的第一行。这将关闭模态视图,然后继续将数据设置为有效的文本字段,因为 -viewWillAppear:/-viewDidAppear: 已经被调用。一切似乎都很好,只是订单可能会绊倒你。虽然

-dismissModalViewControllerAnimated:

如果 View Controller 没有模态视图(因为它是模态视图),则传递给它的父级,在委托(delegate)方法中调用此方法似乎更合适,因为新数据最终会操作 View 等

关于ios - 从模式中选择数据后如何在 UITableViewCell 中刷新 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9688907/

相关文章:

xcode - UITableView单元格高度动画

ios - TableView 日期部分标题

ios - 如何将整个句子中的某个单词定义为变量?

ios - 两个文本字段的第一响应者

iphone - UIProgressbar更新方法

ios - Swift Spritekit 接触位掩码和分数标签

iOS 系统在打开 App Store URL 之前挂起

iphone - UITableViewController 没有更新内容是我应用手动排序

ios - "' ViewController.Type ' does not have a member named . . . "

ios - 在 swift 表格 View 中选择字母部分的事件生成