如果标题不是很清楚,我很抱歉,无论如何我会在这里解释。
我有2个文件: SelectPostIt.xib 和 PostIt.xib 。 在我的 main.storyboard 上我有一个 UIButton ,当有人推动它时,它会创建一个新的 SelectPostIt 。这个是不可编辑的。
原则是当我双击selectPostIt
时,会出现一个新的PostIt
:
-(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作为新帖子的父级位于[editPostIt setParent:self];
,对吗?我已经(在PostIt.m中):
-(void)setParent:(SelectPostIt*)value{
_parent = value;
}
在我的PostIt.h中使用property(weak, nonatomic) SelectPostIt* parent;
。
然后,当我双击 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 至少消失了哈哈)。
所以,如果有人可以帮助我解决我错的地方,那可能会很好,提前谢谢:)
答案 0 :(得分:0)
这不是确切的答案,但我认为我必须深入研究这一点:
我在 PostIt.m 中添加了: @synthesize parent;
并改变了: [parent setIsEdited:true]
To :(这是我的错误) [parent setIsEdited:false]
现在,我的 PostIt.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 ,而且我没有能够在之前。这意味着 editPostIt 的布尔值已被 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 或其他东西以便它可以获取新数据?我真的不知道......