将 managedobject 从 uitableview 传递到文本字段以在核心数据模型中进行编辑
Posted
技术标签:
【中文标题】将 managedobject 从 uitableview 传递到文本字段以在核心数据模型中进行编辑【英文标题】:Passing managedobject from uitableview to textfield to edit in core data model 【发布时间】:2015-06-11 16:18:01 【问题描述】:我有一个视图控制器,它有一个由我的核心数据模型填充的 uitableview。我正在尝试进行设置,以便可以点击 uitableview 中的项目,将该项目传递到第二个视图控制器上的 uitextfield,在那里可以对其进行编辑,然后将其保存回我的核心数据模型。
准备继续
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
if ([[segue identifier] isEqualToString:@"EditItemSegue"])
NSIndexPath *indexPath = [self.tableView indexPathForCell:sender];
Item *item = [[self fetchedResultsController]objectAtIndexPath:indexPath];
[segue.destinationViewController setItemname:[item valueForKey:@"itemname"]];
错误
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[EditItem setItemname:]: unrecognized selector sent to instance
我很确定错误表明我正在尝试对不允许的对象执行操作。
一些帮助。我们将不胜感激。
edititem.h
#import "ViewController.h"
@interface EditItem : ViewController
@property (strong, nonatomic) IBOutlet UITextField *editItemField;
@property (nonatomic, strong) NSString *toDoItemName;
@end
edititem.m
#import "EditItem.h"
@interface EditItem ()
@end
@implementation EditItem
@synthesize editItemField;
@synthesize toDoItemName;
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view.
editItemField.text = toDoItemName;
- (void)didReceiveMemoryWarning
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
@end
编辑
这是我在 viewWillLoad 中尝试过的
- (void)viewWillAppear:(BOOL)animated
[editItemField setText:toDoItemName];
【问题讨论】:
您的错误表明 EditItem 没有任何方法 setItemname 的实现。我们可以看到 EditItem.h 吗? 【参考方案1】:你打电话给setItemname:
,而你应该打电话给setToDoItemName:
。
【讨论】:
哇哦。我不敢相信我错过了。我的 edititem 实现是否正确?现在当我点击一个项目时,它不会填充 uitextfield 您可能需要在viewWillAppear:
而不是 viewDidLoad
中运行该代码。以上是关于将 managedobject 从 uitableview 传递到文本字段以在核心数据模型中进行编辑的主要内容,如果未能解决你的问题,请参考以下文章
将 UITable 行号从大到小反转(...5,4,3,2,1)
ManagedObject 和 ObservedObject
删除对属于 ManagedObjectContext 的 ManagedObjects 的所有引用
UITableView 更新正确数量的 managedObjects,但不会显示值
managedObject 上的 setValuesForKeysWithDictionary 在 swift 中给出编译错误