Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式创建的文本字段不会保存文本_Ios_Objective C_Uitextfield - Fatal编程技术网

Ios 以编程方式创建的文本字段不会保存文本

Ios 以编程方式创建的文本字段不会保存文本,ios,objective-c,uitextfield,Ios,Objective C,Uitextfield,情况: My.h文件中声明了我的两个文本字段: @interface DetailViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UIAlertViewDelegate, UITextFieldDelegate> { UITextField *countTotalFieldUniversal; UITextField *flavorNameUniversal; } 尝试调试

情况:

My.h文件中声明了我的两个文本字段:

@interface DetailViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, UIAlertViewDelegate, UITextFieldDelegate> {
UITextField *countTotalFieldUniversal;
UITextField *flavorNameUniversal;
}
尝试调试:

当我尝试使用以下代码在setEditing中打印当前文本字段值时:

NSString *flavorText = ((UITextField*)[self.view viewWithTag:1]).text;
NSString *countText = ((UITextField*)[self.view viewWithTag:2]).text;
NSLog(@"newFlavorName: %@", flavorText);
NSLog(@"newCountTotal: %@", countText);
NSString * newFlavorName = flavorNameUniversal.text;
NSString * newCountTotal = countTotalFieldUniversal.text;
NSLog(@"newFlavorName: %@", newFlavorName);
NSLog(@"newCountTotal: %@", newCountTotal);
我只得到未经编辑的原始标签:“味道”和“计数”

当我尝试使用以下代码在setEditing中打印当前文本字段值时:

NSString *flavorText = ((UITextField*)[self.view viewWithTag:1]).text;
NSString *countText = ((UITextField*)[self.view viewWithTag:2]).text;
NSLog(@"newFlavorName: %@", flavorText);
NSLog(@"newCountTotal: %@", countText);
NSString * newFlavorName = flavorNameUniversal.text;
NSString * newCountTotal = countTotalFieldUniversal.text;
NSLog(@"newFlavorName: %@", newFlavorName);
NSLog(@"newCountTotal: %@", newCountTotal);
我得到两个的空值


好像我对文本字段的更改根本没有被跟踪

很可能您对文本字段的更改根本没有被跟踪!至少他们正在被跟踪,然后在你得到他们之前被释放

不要每次都实例化一个新的
UITextField
对象。我建议您将UITableViewCell子类化,以处理两个
UITextField
的所有权和绘图。为子类提供两个文本字段属性(
@property(强,非原子)UITextField*textField1/2
),并确保在
init
中实例化它们,或者在setter中使用延迟实例化

使用委派(在
UITextFieldDelegate
协议中声明的
textfieldDendediting:
方法)从您的
UITextField
获取数据到您的viewController


这将起作用并跟踪对文本字段所做的更改。

每次在表视图上(重新)加载一行时,您也将创建新的文本字段。或者请求任何特定单元格上的文本字段。您在哪里设置文本字段上的标记?我在中设置标记cellForRowAtIndexPath@Wain-哇,谢谢。我甚至没有注意到。我将initwithframe和这两个文本字段的委托移动到ViewDidLoad。现在它工作得很好。