Ios 由父对象的子对象更新父对象的数据

Ios 由父对象的子对象更新父对象的数据,ios,objective-c,Ios,Objective C,对不起,如果标题不太清楚,我会在这里解释 我有两个文件:选择posit.xib和posit.xib。 在我的main.storyboard上,我有一个UIButton,当有人按下它时,它会创建一个新的SelectPostIt。这个是不可编辑的 其原理是,当我双击一个选择posit时,会出现一个新的posit: -(IBAction)doubleTap:(UITapGestureRecognizer *)recognizer { if(!_isEdited){ _isEdited = t

对不起,如果标题不太清楚,我会在这里解释

我有两个文件:选择posit.xib和posit.xib。 在我的main.storyboard上,我有一个UIButton,当有人按下它时,它会创建一个新的SelectPostIt。这个是不可编辑的

其原理是,当我双击一个
选择posit
时,会出现一个新的
posit

-(IBAction)doubleTap:(UITapGestureRecognizer *)recognizer {

if(!_isEdited){
    _isEdited = true;

    PostIt *editPostIt = nil;
    NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"PostIt" owner:self options:nil];

    for (id object in objects)
    {
        if ([object isKindOfClass:[PostIt class]])
        {
            editPostIt = object;
        }
    }

    editPostIt.frame = CGRectMake(10,10, 400, 400);
    [editPostIt setParent:self];
    [self.superview addSubview:editPostIt];
}}
所以,通常,selectPostIt作为新Post的父项坐在:
[editPostIt setParent:self],对吗?我已经有(在posit.m中):

使用
属性(弱、非原子)选择Postit*parent在我的posit.h中

然后,当我双击PostIt时,它将消失,但也会更改使用此方法创建他的SelectPostIt的值:

-(IBAction)doubleTap:(UITapGestureRecognizer *)recognizer{

NSString *string = [self.titre text];
//NSLog(@"string: %@", string );
[_parent setTitre:string];

string = [self.commentaire text];
//NSLog(@"string: %@", stringFromTextField );
[_parent setCommentaire:string];

[_parent setIsEdited:true];

if(_parent == NULL)
    NSLog(@"Pas de parents" );
if(_parent == nil)
    NSLog(@"Pas de parents" );

[self removeFromSuperview];
}
我做了一些测试,字符串很好,但是SelectPostIt的值没有改变(好的一点是PostIt至少消失了,哈哈)


因此,如果有人能帮我找出我错的地方,那就太好了,提前谢谢:)

这不是确切的答案,但这是我必须深入研究的一点:

我在我的帖子中添加了以下内容: @合成亲本

并改变了: [父集合编辑:真]

致:(这是我的错误) [父集合编辑:false]

现在,我的posit.m的doubleTap方法如下所示:

-(IBAction)doubleTap:(UITapGestureRecognizer *)recognizer{

NSString *string = [self.titre text];    
[parent setTitre:string];

string = [self.commentaire text];
[parent setCommentaire:string];

[parent setIsEdited:false];
[self removeFromSuperview]; }
从现在起,当我关闭一个editPostIt,当我双击selectPostIt时,就会创建一个新的editPostIt,而我以前无法创建它。这意味着selectPostIt中的布尔值已因editPostIt的关闭而更改

所以我认为从现在开始,这是好的:

-(IBAction)doubleTap:(UITapGestureRecognizer *)recognizer{

NSString *string = [self.titre text];    
[parent setTitre:string]; 

string = [self.commentaire text];
[parent setCommentaire:string];

[parent setIsEdited:false];  
[self removeFromSuperview]; }

但我需要“重新加载”(?)selectPostIt或其他东西,以便它可以接收新数据?我真的不知道…

这不是确切的答案,但这是我认为我必须深入研究的一点:

我在我的帖子中添加了以下内容: @合成亲本

并改变了: [父集合编辑:真]

致:(这是我的错误) [父集合编辑:false]

现在,我的posit.m的doubleTap方法如下所示:

-(IBAction)doubleTap:(UITapGestureRecognizer *)recognizer{

NSString *string = [self.titre text];    
[parent setTitre:string];

string = [self.commentaire text];
[parent setCommentaire:string];

[parent setIsEdited:false];
[self removeFromSuperview]; }
从现在起,当我关闭一个editPostIt,当我双击selectPostIt时,就会创建一个新的editPostIt,而我以前无法创建它。这意味着selectPostIt中的布尔值已因editPostIt的关闭而更改

所以我认为从现在开始,这是好的:

-(IBAction)doubleTap:(UITapGestureRecognizer *)recognizer{

NSString *string = [self.titre text];    
[parent setTitre:string]; 

string = [self.commentaire text];
[parent setCommentaire:string];

[parent setIsEdited:false];  
[self removeFromSuperview]; }
但我需要“重新加载”(?)selectPostIt或其他东西,以便它可以接收新数据?我真的不知道