在iphone sdk中动态创建UITextField有问题

时间:2011-01-29 13:06:39

标签: iphone cocoa-touch ios4 uitextfield

在我的iphone应用程序中,我已在scrollView中动态创建了一些UITextField。并在xib中添加了一个按钮。在该按钮的TouchUpInside事件中,我打开了UIImagePickercontroller以打开照片库并在UIImageView上获取所选图像。

现在,当modalview被解雇时,我的UITextField中的值就会消失。

如何保留UITextField值?

txt = [[UITextField alloc] initWithFrame:CGRectMake(10.0f, 30.0f, 200.0f, 30.0f)];

[txt addTarget:self action:@selector(keyDown:)forControlEvents:UIControlEventEditingDidEndOnExit];

txt.textColor = [UIColor blackColor];

txt.borderStyle = UITextBorderStyleBezel;

txt.autocorrectionType = UITextAutocorrectionTypeNo;

[fieldArray addObject:txt];

使用for循环我将txt添加到NSMutableArray fieldArray。

以下是我从TextFields

获取值的代码
NSMutableArray *insertValues = [[NSMutableArray alloc]init];

//Taking values from textFields

for (int i=1; i<=nooffields; i++) {

    UITextField *tf = (UITextField *)[self.view viewWithTag:i];

    NSLog(@"TF : %@",tf.text);

    if (tf.text.length<=0) {

        tf.text=@"";

    }

    [insertValues addObject:[NSString stringWithFormat:@"'%@'",tf.text]];
}

编辑: 此外,当我在此textFields中显示数据库中的值并尝试编辑它时。它给了我空值。

可能是什么原因?如果还有其他选择吗?请帮帮我

3 个答案:

答案 0 :(得分:3)

UITextField *textField=[[UITextField alloc]init];
[textField setFrame:CGRectMake(x,y, width, hight)];
[textField setBorderStyle:UITextBorderStyleRoundedRect];
[self.view addSubview:textField];

答案 1 :(得分:0)

滚动视图用于填充的信息应存储在滚动视图外部,例如NSMutableDictionary。因此,每次调用cellForRowAtIndexPath时,它都可以从该源检索信息。所以我建议你将UITextField的文本存储在字典中。您可以通过其标签号对其进行索引。这样你就不会松开它所包含的一切。

我希望它可以帮到你

干杯

答案 2 :(得分:0)

我终于解决了我的问题。

当调用presentModalViewController时,我暂时将textField的值存储到数据库中。

我将这些值检索回viewWillAppear上的textFields。

这可能不是一个非常有效的解决方案,但它适用于我的情况。

希望这有助于某人。

感谢您的所有回复。