私のアプリは次のもので構成されています。
- メイン データ ビュー コントロール
- 設定ビュー コントローラー (設定用の 3 つのテキスト フィールドがある)
(2).m では、キーが押されたときに次のコードが使用されます。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if(textField==_serverAddress){
NSLog(@"new server adress %@", textField.text);
[[NSUserDefaults standardUserDefaults] setObject:textField.text forKey:@"serverAddress"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
if(textField==_login){
NSLog(@"new login %@", textField.text );
[[NSUserDefaults standardUserDefaults] setObject:textField.text forKey:@"login"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
if(textField==_password)
{
NSLog(@"new password %@", textField.text);
[[NSUserDefaults standardUserDefaults] setObject:textField.text forKey:@"password"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
[textField resignFirstResponder];
return YES;
}
viewDidLoad では、次のコードが使用されます。
- (void)viewDidLoad
{
// Get the stored data before the view loads
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *savedServerAddress = [defaults objectForKey:@"savedServerAddress"];
NSString *savedLogin = [defaults objectForKey:@"savedLogin"];
NSString *savedPassword = [defaults objectForKey:@"savedPassword"];
// Update the UI elements with the saved data
self.serverAddress.text = savedServerAddress;
self.login.text = savedLogin;
self.password.text = savedPassword;
[super viewDidLoad];
_serverAddress.delegate = self;
_login.delegate = self;
_password.delegate = self;
}
(2) で設定を新しいものに変更し、(1) に戻ってから (2) に戻ると、プレーン テキスト フィールドが表示されますが、何が間違っていましたか?