不能更改另一个类IOS的BOOL值
我遇到一个简单的问题,我试图从另一个类更改类的布尔值,但它不会发生,它返回NO
。
//推送其他视图控制器之前
-(IBAction)editWOD { self.editGirlController= [[AddGirlsView alloc] init]; self.editGirlController.isEditModeON=YES; self.editGirlController.editgirls=girls; [self performSegueWithIdentifier:@"editModeGirls" sender:self]; }
AddGirlsView .h
@interface AddGirlsView : UIViewController { BOOL isEditModeON; } @property BOOL isEditModeON;
AddGirlsView .m
@synthesize isEditModeON; - (void)viewDidLoad { [super viewDidLoad]; if (isEditModeON==NO) { NSLog(@"Edit Mode is OFF"); } else{ [self populateViewOnEdit]; } }
代码有什么问题?
+++++++++答案补充+++++++++++++++++
感谢乔尔在这里是答案
-(IBAction)editWOD { [self performSegueWithIdentifier:@"editModeGirls" sender:self]; } - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if([[segue identifier] isEqualToString:@"editModeGirls"]) { AddGirlsView *editGirlController = [segue destinationViewController]; editGirlController.isEditModeON=YES; editGirlController.editgirls=girls; } }
我认为这个问题是你alloc和init AddGirlsView。 当你执行一个segue时,它可能会重新实例化另一个AddGirlsView。 你应该在prepareForSegue中设置这个variables。
if ([segue.identifier isEqualToString:@"editGirlsMode"]) { [segue.destinationViewController setIsEditModeOn:YES]; [segue.destinationViewController setEditGirls:girls]; }
@property (nonatomic) BOOL isEditModeON;