Objective c 布尔变量';s值未更改在情节提要中从子级到父级禁用ViewControllerAnimated
我不是一个初学者,但我不明白这个愚蠢的问题。我有两个视图控制器,例如Parent和Child是类Parent是一个基类,child是一个子类,但除了这些bool之外,我不能继承任何数据 在父类中,我使用一个Objective c 布尔变量';s值未更改在情节提要中从子级到父级禁用ViewControllerAnimated,objective-c,uiviewcontroller,ios9,boolean-expression,viewdidappear,Objective C,Uiviewcontroller,Ios9,Boolean Expression,Viewdidappear,我不是一个初学者,但我不明白这个愚蠢的问题。我有两个视图控制器,例如Parent和Child是类Parent是一个基类,child是一个子类,但除了这些bool之外,我不能继承任何数据 在父类中,我使用一个BOOL变量,我在Parent.h @property (nonatomic, assign) BOOL isChange; 之后,我合成这个变量并在viewDidLoad isChange = FALSE; 现在,我在Child类中使用这个变量,并将值更改为True Parent
BOOL
变量,我在Parent.h
@property (nonatomic, assign) BOOL isChange;
之后,我合成这个变量并在viewDidLoad
isChange = FALSE;
现在,我在Child类中使用这个变量,并将值更改为True
Parent.isChange = TRUE;
在此更改之前,我还将alloc
和init
父类放在子类中
Parent = [[Parent alloc] init];
但问题是当我退出这个类并转到ParentClassisChange
value notchange时
[self dismissViewControllerAnimated:YES completion:nil];
我报到了家长班
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (isChange == TRUE) { // Here isChange Return NO.
[self refresh:nil];
}
}
我无法找出我的错误。
[[Parent alloc]init]
创建了一个Parent
的新实例。如果更改该实例中某个属性的值,则没有理由期望该值在Parent
的其他实例中也会更改
如果要验证正在发生的情况,请在进行分配时打印家长的地址以及测试
isChange
的self
的值。如果它们不相同,则处理的是不同的对象。您无法获得TRUE
值,因为在子类中,您的alloc
init
。它将创建一个新的实例
。最好全局声明此布尔变量。我给你举个例子
在Common.h
@property (nonatomic) BOOL isChange;
在Common.m中定义
- (void)checkIsAnyChange:(BOOL)isChange {
_isChange = isChange;
[self updateChangeCount:UIDocumentChangeDone];
}
现在在父类和子类中使用此Boolean
进行检查。我通常会对要求紧急情况的用户(尤其是有经验的用户)投反对票,但这个问题在其他方面非常好,所以在这种情况下我会避免。请注意,一旦你向互联网上的志愿者网站提交了一个问题,它对其他任何人来说都不会变得紧急,也不会比今天出现的任何其他问题更优先处理。你对这个问题有答案吗?我有点困惑。子类
是继承自父类
还是它们只是两个随机的类名(也就是说,你能显示更多你的.h
文件吗?在Child
实例中,你在哪里设置Parent.isChanged=TRUE
?实际上我在Child类中使用这个布尔值来检查是否有任何Web服务调用。没有“prepareForSegue”是否可能?没有prepareForSegue方法是否可能?我不明白你的意思t、 您最初的问题与segues有什么关系?我在这里检查了您的答案,我认为您使用prepareForSegue进行数据传递。您是否理解我的问题?请参阅我的评论了解我想要的内容。我知道您正在更改一个父对象,并希望更改会影响另一个Parent
对象(否则,不,我不知道您为什么要谈论“继承的”数据)