属性更新未从其他视图控制器保存

时间:2014-12-21 01:30:38

标签: ios objective-c uitableview

我已经看到很多这方面的答案,但由于某种原因它不适合我。 我在文件A中有一个属性,然后在文件B中我将变量设置为文件A上的viewdidappear上的某个值a /根据分配给变量的内容运行一些代码。

因此。这是我的代码。 (最小) 的 ViewController.H

@property(strong, nonatomic) NSString *option;

ViewController.M

-(void)viewDidAppear:(BOOL)animated
{
    NSLog(@"Has apeparsed");
    if ([_option isEqualToString:@"1"]) {

            [_map removeAnnotation:budAnno];
    }
}

ViewControllerB.h

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if ([[recipes objectAtIndex:indexPath.row] isEqualToString:@"TEST"])
    {
        ViewController *viewO =[[ViewController alloc]init];
        viewO.option=@"1";
    }
}

当在ViewControllerB中调用此代码时,选项设置为1.但是当我单击BACK to viewContoller.M时,我的if语句失败,因为它返回nil。 我想知道为什么这样做。

1 个答案:

答案 0 :(得分:3)

问题是您在视图控制器A的新实例上设置选项为1,而不是原始实例。这是一个新实例,因为你正在做alloc / init。

当您返回时,您将返回到视图控制器A的ORIGINAL实例。您尚未更改其选项值。