我有BaseClass,它是UIViewController类和子视图类。在BaseClass中,我有BOOL变量isRegistrationScreenVisible来显示或隐藏菜单按钮。当我从登录屏幕切换到注册屏幕时,我想设置isRegistrationScreenVisible=YES;但它没有设置。这里是我的课程:
BaseView.h
@interface BaseView : UIViewController
@property(assign, nonatomic) BOOL isRegistrationScreenVisible;
@end
ChildView.h
#import "BaseView.h"
@interface LoginViewController : BaseView
@end
ChildView.m
- (IBAction)showRegistration:(id)sender {
[super isRegistrationScreenVisible:YES];
NSLog([super isRegistrationScreenVisible]?@"SET REG SCREEN":@"WE ARE NO");
}
在日志中显示变量设置为YES,但当它切换到另一个视图变量时,变量仍然为NO
在BaseViewController
中,您需要使用与访问它相同的名称声明属性:
@interface BaseViewController : UIViewController
@property(assign, nonatomic) BOOL isRegistrationScreenVisible;
@end
由于子类继承了您可以使用的属性:
self.isRegistrationScreenVisible = YES;