解决方案 »

  1.   

    如果你是想记录某个数据,那用全局变量肯定不行,因为全局变量是和app生命周期一致的。如果数据不是很多、不是很大的话,记录在NSUserDefaults里。
    如果你是想在app启动的时候,恢复到上次退出时的页面,就看下UI状态保持和恢复,这是iOS6系统增加的功能
      

  2.   

    [[self.remember_btn rac_signalForControlEvents:UIControlEventTouchUpInside]subscribeNext:^(UIButton *btn) {
             UIImage *imgNormal = [UIImage imageNamed:@"ic_yes"];
             UIImage *imgSelected = [UIImage imageNamed:@"ic_yes_press"];
            NSUserDefaults *def =[NSUserDefaults standardUserDefaults];
            if (check == YES) {
                [btn setImage:imgSelected forState:UIControlStateNormal];
                [store setString:self.passWordText.text forKey:@"pwd"];
                [store synchronize];
                [def setObject:@"ic_yes_press" forKey:@"remember"];
                [def synchronize];
                check = NO;
            }else{
                [btn setImage:imgNormal forState:UIControlStateNormal];
                [store removeItemForKey:@"pwd"];
                [store synchronize];
                [def setObject:@"ic_yes" forKey:@"remember"];
                [def synchronize];
                check = YES;
            }
    -(void)viewWillAppear:(BOOL)animated{
        [super viewWillAppear:YES];
        NSUserDefaults *def = [NSUserDefaults standardUserDefaults];
         if (nil != [def stringForKey:@"remember"]) {
             [self.remember_btn setImage:[UIImage imageNamed:[def stringForKey:@"remember"]] forState:UIControlStateNormal];
        }
      }
    怎么不行啊,是我哪儿做错了么
      

  3.   

    你想在viewWillAppear的时候把remember_btn的image设置为正确的值?
    先看看在viewWillAppear的时候self.remember_btn是不是为nil,如果不是的话,再看是不是在后面被覆盖了。
      

  4.   

    我觉得不应该在viewWillAppear里做这件事,其实你只需要在刚进这个页面的时候做初始化的时候判断一下就行了,没必要每次调viewWillAppear的时候都判断+设置image。
    而且你的判断方式其实也有问题,你是判断是否为nil,但无论用户是选择记住还是不记住,你都往NSUserDefaults的remember中保存了一个值,那这个判断就永远为真了
      

  5.   

    大虾,请问你们在项目中一般都是怎么处理这个记住密码的按钮的呢?而且下次启动app与上次关闭的时候的状态是一样的
      

  6.   

    你存个布尔值在NSUserDefaults里就行了,进VC的时候读出来,用户修改的时候再存一次