1

単純な問題が発生しました。クラスの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];
    }


}

コードの何が問題になっていますか?

+++++++++回答が追加されました+++++++++++++++++

Joelのおかげでここに答えがあります

-(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;
    }
}
4

2 に答える 2

4

問題は、AddGirlsView を割り当てて初期化することだと思います。セグエを実行すると、おそらく別の AddGirlsView が再インスタンス化されます。この変数は prepareForSegue で設定する必要があります。

if ([segue.identifier isEqualToString:@"editGirlsMode"]) {
    [segue.destinationViewController setIsEditModeOn:YES];
    [segue.destinationViewController setEditGirls:girls];
}
于 2013-01-28T18:24:18.420 に答える
-4
@property (nonatomic) BOOL isEditModeON;
于 2013-01-28T18:23:54.080 に答える