【发布时间】:2013-07-11 04:12:50
【问题描述】:
在我的应用程序中,我使用了一个模态视图控制器,它包含一个带有多个文本字段的 TableView。
说我的主视图控制器叫做 SridharViewController 和模态视图控制器叫做 ResultsViewController
SridharViewController 中有一个按钮,触摸该按钮将打开 modal(ResultsViewController)
[self presentModalViewController:resultsViewController animated:YES];
在结果视图控制器中,有很多文本字段在 TableView 中对齐。和一个“确定”按钮。按“确定”按钮将关闭模式
[self dismissModalViewControllerAnimated:YES];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"cellForRowAtIndexPath called");
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
//UITextField *formTextField = [[UITextField alloc] initWithFrame:CGRectMake(30, 11, 270, 30)];
UITextField *formTextField =nil;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
if(indexPath.row == 0){
formTextField = [[UITextField alloc] initWithFrame:CGRectMake(30, 12, 270, 30)];
}
else{
formTextField = [[UITextField alloc] initWithFrame:CGRectMake(30, 11, 270, 30)];
}
}else{
if(indexPath.row == 0){
formTextField = [[UITextField alloc] initWithFrame:CGRectMake(50, 12, 670, 30)];
}
else{
formTextField = [[UITextField alloc] initWithFrame:CGRectMake(50, 11, 670, 30)];
}
}
formTextField.placeholder = [self.formFields objectAtIndex:indexPath.row];
formTextField.tag = indexPath.row;
formTextField.text=@"";
formTextField.adjustsFontSizeToFitWidth = YES;
formTextField.textColor = [UIColor blackColor];
formTextField.borderStyle = UITextBorderStyleNone;
formTextField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
[formTextField setAutocapitalizationType:UITextAutocapitalizationTypeNone];
[formTextField setAutocorrectionType:UITextAutocorrectionTypeNo];
formTextField.backgroundColor = [UIColor clearColor];
formTextField.textAlignment = UITextAlignmentLeft;
formTextField.delegate = self;
[formTextField setEnabled: YES];
[formTextField setReturnKeyType:UIReturnKeyNext];
[self.textFields addObject:formTextField];
[cell addSubview:formTextField];
return cell;
}
当我第二次调用模态视图时,模态显示之前的内容。我想清除以前的内容。
我已经尝试过更新和重新加载功能。他们都没有调用cellForRowAtIndexPath 方法。
[self.theTable reloadInputViews];
请为我提供最好的方法。
【问题讨论】:
-
以前的内容是什么意思?什么类型的内容? TextField 是否保存他们的文本数据?
-
在tableview上调用reloadData,然后cellForRowAtIndexPath会被调用。
-
“当我第二次调用模态视图时”——你是怎么做到的?您需要提供更多代码让我们为您提供帮助。
-
@Dilip,我已经编辑了我的问题...
-
您能否说明您在 tableview 中向 textfeilds 提供数据的位置和方式?因为当您第二次呈现模态视图时,如果您没有保存模态控制器的实例,它实际上会创建新的 tableview 实例。跨度>
标签: iphone ios objective-c uitableview modalviewcontroller