Ios 由父对象的子对象更新父对象的数据
对不起,如果标题不太清楚,我会在这里解释 我有两个文件:选择posit.xib和posit.xib。 在我的main.storyboard上,我有一个UIButton,当有人按下它时,它会创建一个新的SelectPostIt。这个是不可编辑的 其原理是,当我双击一个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
时,会出现一个新的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或其他东西,以便它可以接收新数据?我真的不知道