Objective c 布尔变量';s值未更改在情节提要中从子级到父级禁用ViewControllerAnimated

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

我不是一个初学者,但我不明白这个愚蠢的问题。我有两个视图控制器,例如ParentChild是类Parent是一个基类,child是一个子类,但除了这些bool之外,我不能继承任何数据

在父类中,我使用一个
BOOL
变量,我在Parent.h

@property (nonatomic, assign) BOOL isChange;  
之后,我合成这个变量并在
viewDidLoad

isChange = FALSE;  
现在,我在Child类中使用这个变量,并将值更改为
True

Parent.isChange = TRUE;  
在此更改之前,我还将
alloc
init
父类放在子类

Parent = [[Parent alloc] init];  
但问题是当我退出这个类并转到ParentClass
isChange
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
对象(否则,不,我不知道您为什么要谈论“继承的”数据)