iOS刷新标题标题

时间:2012-01-05 11:28:52

标签: ios header tableview title reload

我有grouped table with 3 categories and one header above the first one。我希望在用户输入他/她的名字之后,标题标题用该人的名字更新自己。在解雇第一个响应者(键盘)后,我将reloadData方法放在textFieldShouldReturn中。它似乎不起作用。标题标题保持不变。

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    if(section == 0 ) 
    {
        if(title==nil)
            return @"Your name here...";
        else
            return title;
    }
    else return nil;
}

titleNSString,其中应包含标题单元格中的文字。

以下代码来自cellForRowAtIndexPath ....

UITextField *txt = [[ UITextField alloc ] initWithFrame:CGRectMake(100,10, 200, 30)];``
    txt.delegate = self;
    [cell addSubview:txt];

    if(indexPath.section==0)
    {
        if([indexPath row] == 0)
        {
            [cell.textLabel setText:@"Name"];
            title = txt.text;

        }

谢谢!

1 个答案:

答案 0 :(得分:0)

您没有说清楚,因为您没有从cellForRowAtIndexPath方法发布足够的代码,但是每次调用cellForRowAtIndexPath时,您可能会重新创建一个UITextField(这是很多)。这也意味着你像疯了一样泄漏内存(你的应用程序会因在应用程序商店中列出而被拒绝启动)。

要解决此问题,请在xib文件中创建一个UITableView单元并将UITextField嵌入其中(将IBOutlets连接到两者),然后在为需要文本的索引路径调用cellForRowAtIndexPath时返回UITableView单元格要出现的字段。

或者,您可以以编程方式(而不是在xib中)创建UITableView单元格,在您执行操作时初始化UITextField并将其分配给类中的变量。

无论如何,你只想分配&初始化UITextField一次, 一次。如果你可以这样做,你可以调用title = txt.text;(你还应该将你的UITextField重命名为更直观的东西,比如nameLabel)。

Take a look at this related StackOverflow question了解如何在UITableViewCell中嵌入UITextField。