Objective c 单击单元格后编辑详细信息控制器中的文本字段
在用户输入姓名后,我在编辑单元格中的姓名时遇到了一些问题Objective c 单击单元格后编辑详细信息控制器中的文本字段,objective-c,uitableview,Objective C,Uitableview,在用户输入姓名后,我在编辑单元格中的姓名时遇到了一些问题基本上,他们单击一个按钮“添加名称”,将他们带到详细信息控制器,输入他们的名字和姓氏,然后单击“完成”。将委托回主控制器,并更新单元格以显示该名称。 我希望他们能够输入许多名称,然后单击一个单元格,该单元格会将他们带回他们已经输入的数据(存储在名为“entry”的NSMutableArray中)。 第一个NSLog显示的名称很好,但第二个返回为“null”,文本字段为空,准备添加新名称……非常感谢所有和任何帮助:)我认为您的工作方式是错误的
基本上,他们单击一个按钮“添加名称”,将他们带到详细信息控制器,输入他们的名字和姓氏,然后单击“完成”。将委托回主控制器,并更新单元格以显示该名称。
我希望他们能够输入许多名称,然后单击一个单元格,该单元格会将他们带回他们已经输入的数据(存储在名为“entry”的NSMutableArray中)。
第一个NSLog显示的名称很好,但第二个返回为“null”,文本字段为空,准备添加新名称……
非常感谢所有和任何帮助:)我认为您的工作方式是错误的,您没有直接将值设置到
UITextfield
,而是向它传递一个NSString
,这将是模型的属性
这就是MVC
的要点,数据不应该直接与UI
交互
在MasterViewController
中,需要导入DetailViewController
标题:
#import "DetailViewController.h"
执行didSelectedRow
中的步骤:
-(void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {
[self performSegueWithIdentifier:@"detailSegue" sender:sender];
}
实现segue deleguate并设置其firstName属性(NSSrting
)
然后在DetailView的viewDidLoad中,将firstName
字符串分配给UItextfield
文本属性:
_firstNameField.text = self.firstName;
如何创建self.detailVIew.firstNameField?在我的主视图controller.h中使用@property DetailViewController*detailViewNo,我指的是firstNameField…非常感谢!工作完美,你是天使:)
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if([segue.identifier isEqualToString:@"detailSegue"]){
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
DetailViewController*detailView = (DetailViewController*)segue.destinationViewController;
detailVC.firstName =[[self.entry objectAtIndex:indexPath.row]firstName]];
NSLog(@"%@",[[self.entry objectAtIndex:indexPath.row]firstName]);
}
}
_firstNameField.text = self.firstName;