0

NSUserDefault に NSString を保存する uiviewcontroller があります。このまま帰ると

-(IBAction)goBack:(id)sender{
    [self dismissModalViewControllerAnimated:YES];
    [self viewWillAppear:YES];
}

NSUserDefault に保存された NSString を使用する必要がある別の uiviewcontroller に。viewWillApper では、この nsstring をロードします。アプリケーションを初めて起動したときにデータが正しくロードされたとき、別のビューから戻った場合は. 私に何ができる?

4

1 に答える 1

0

NSUserDefaultsDidChangeNotification のオブザーバーとして、デフォルトの値を気にするビュー コントローラーを登録します。通知を受け取ったら、デフォルトから値を取得し、必要なことを行います。

文字列を設定しているモーダルView Controllerを単に提示していて、新しい値を知る必要があるのは親View Controllerである場合、親View Controllerにプロパティを設定し、それをモーダルとして設定することができますビュー コントローラーは閉じられます。

そこにあるサンプル コードは、モーダル ビュー コントローラーからのものであると想定しています。モーダルView Controllerを閉じたときのView Controller。

私の2番目の提案を行うには、親View Controllerのヘッダーで:

@property (nonatomic,copy) NSString *stringFromDefaults;

.m ファイル内:

@synthesize stringFromDefaults;

現在値を取得しているviewWillAppearで、代わりにプロパティに割り当てます。

self.stringFromDefaults = [[NSUserDefaults standardUserDefaults] stringForKey:@"stringValue"];

モーダル ビュー コントローラーから:

-(IBAction)goBack:(id)sender
{
    [(ParentViewController*)self.parentViewController setStringFromDefaults:newStringValue];
    [self dismissModalViewControllerAnimated:YES];
}

newStringValueデフォルトにも保存した更新された文字列値はどこにありますか。

于 2011-11-06T14:25:16.407 に答える