布尔变量的值不会在故事板中将 dismissViewControllerAnimated 从 Child 更改为 Parent
Boolean Variable's value not change dismissViewControllerAnimated From Child to Parent in Storyboard
我不是初学者,但我想不通这个愚蠢的问题。我有两个视图控制器,例如 Parent 和 Child 是 classes。 Parent 是基础 class 而 child 是基础 class 但我可以't 继承了除这些 bool 之外的任何数据。
在 Parent Class 我使用一个 BOOL
我在 Parent.h
声明的变量
@property (nonatomic, assign) BOOL isChange;
之后我合成了这个变量并在 viewDidLoad
中初始化默认值 False
isChange = FALSE;
现在,我在 Child Class 中使用此变量,并将值更改为 True
Parent.isChange = TRUE;
在此更改之前,我还 alloc
和 init
Parent Class 在 Childclass。
Parent = [[Parent alloc] init];
但问题是当我关闭此 Class 并转到 Parent Class isChange
值未更改。
[self dismissViewControllerAnimated:YES completion:nil];
我签到了ParentClass
- (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
值,因为在 child class 中您的 alloc
init
。它创建了一个新的 Instance
。最好全局声明这个布尔变量。我会给你这个例子。
在 Common.h
中声明变量
@property (nonatomic) BOOL isChange;
在 Common.m
中定义
- (void)checkIsAnyChange:(BOOL)isChange {
_isChange = isChange;
[self updateChangeCount:UIDocumentChangeDone];
}
现在在 Parent 和 Child Class 中使用此 Boolean
进行检查。
我不是初学者,但我想不通这个愚蠢的问题。我有两个视图控制器,例如 Parent 和 Child 是 classes。 Parent 是基础 class 而 child 是基础 class 但我可以't 继承了除这些 bool 之外的任何数据。
在 Parent Class 我使用一个 BOOL
我在 Parent.h
@property (nonatomic, assign) BOOL isChange;
之后我合成了这个变量并在 viewDidLoad
isChange = FALSE;
现在,我在 Child Class 中使用此变量,并将值更改为 True
Parent.isChange = TRUE;
在此更改之前,我还 alloc
和 init
Parent Class 在 Childclass。
Parent = [[Parent alloc] init];
但问题是当我关闭此 Class 并转到 Parent Class isChange
值未更改。
[self dismissViewControllerAnimated:YES completion:nil];
我签到了ParentClass
- (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
值,因为在 child class 中您的 alloc
init
。它创建了一个新的 Instance
。最好全局声明这个布尔变量。我会给你这个例子。
在 Common.h
@property (nonatomic) BOOL isChange;
在 Common.m
- (void)checkIsAnyChange:(BOOL)isChange {
_isChange = isChange;
[self updateChangeCount:UIDocumentChangeDone];
}
现在在 Parent 和 Child Class 中使用此 Boolean
进行检查。