将 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)

从数组向 UITable 添加行

ManagedObject 和 ObservedObject

删除对属于 ManagedObjectContext 的 ManagedObjects 的所有引用

UITableView 更新正确数量的 managedObjects,但不会显示值

managedObject 上的 setValuesForKeysWithDictionary 在 swift 中给出编译错误