在目标C中将BOOL变量从子类设置为父类



我有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;

最新更新