1

ビューにカスタム UIButton があります。それを押すと、状態と img が変わります。ビューを終了してビューに戻っても、UIButton の状態は維持されます。しかし、アプリを終了してもう一度起動すると。カスタム UIButton の状態がデフォルトに戻りました。アプリを終了するときにそのボタンの状態を保存する方法はありますか?

以下は例の写真です

前 http://i.minus.com/ibzHa1XCTDwSAJ.png

![変更後] http://min.us/mtkB3JQRI

そして、これが -(void)viewDidLoad でそれを実行しようとしている私のコードです

UOEventPost *post = (UOEventPost *)self.event;
if(post.postWanted == YES){
    [wantThis setBackgroundImage:[UIImage imageNamed:@"wanted@2x.png"] forState:UIControlStateSelected];
    [wantThis setSelected:TRUE];
    wantThis.titleLabel.text = [NSString stringWithFormat:@"Wanted"];
}else {
    [wantThis setSelected:FALSE];
}

編集

  savedState = [[NSUserDefaults standardUserDefaults]boolForKey:@"TheSavedState"];

UOEventPost *post = (UOEventPost *)self.event;
if(post.postWanted == YES){
    [[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"TheSavedState"];
}else {
    [[NSUserDefaults standardUserDefaults]setBool:NO forKey:@"TheSavedState"];
}

if(!savedState){
    [wantThis setSelected:FALSE];
}else {
    [wantThis setBackgroundImage:[UIImage imageNamed:@"wanted@2x.png"] forState:UIControlStateSelected];
    [wantThis setSelected:TRUE];
    wantThis.titleLabel.text = [NSString stringWithFormat:@"Wanted"];
}
4

3 に答える 3

1

nsuserdefaultsを使用すると、ユーザーがアプリを持っている限り保存されます。また、必要に応じて上書きできます。

于 2012-05-08T00:00:26.320 に答える
0

selected状態をとして保存し、BOOL後で読み戻すことができるように見えます。NSUserDefaultsこのような情報をセッション間で永続化するために調べてください。(特定のアプリでこれを行うための最良の方法はNSArray、ユーザーが参加したい各イベントの識別子を含むものを保存することです。)

于 2012-05-08T00:02:40.990 に答える
0

状態をファイルに書き込むだけです。それから読んでください、onLoad。問題が解決しました。ヘルプが必要な場合は、ios でのファイルの読み書きを調べてください。または、設定を使用することもできます。これにより、ユーザーがアプリケーションを完全に終了しても状態が維持されます。

于 2012-05-08T00:26:06.557 に答える