iOS6
シーンに6つのUITextFieldがあり、次のシーンにセグエする次のボタンがあります。
以下のコードは、キーボードの[完了]ボタンを押すとうまく機能します。
- (IBAction)dismissKeyboard:(id)sender
{
if (sender == LocationName) {
self.meeting.LocationName = LocationName.text;
}
if (sender == LocationAddress) {
self.meeting.LocationAddress = LocationAddress.text;
}
if (sender == LocationCity) {
self.meeting.LocationCity = LocationCity.text;
}
//I have 3 more text fields after and then I persist to CoreData:
NSError *error = nil;
if (![managedObjectContext save:&error]) {
}
[sender endEditing:YES];
}
ユーザーがキーボードの[完了]ボタンを押すと、データは正常に保存されます。
ただし、ユーザーが最初にキーボードの[完了]ボタンを押さずにナビゲーションバーの[次へ]ボタンを押すと、UITextfield内に入力したユーザーは保存されません。ユーザーがナビゲーションバーの[次へ]ボタンを押して次のシーンを呼び出すときに、すべてのフィールドにユーザーが入力したデータ(ユーザーがキーボードから入力したデータ)を保存したいと思います。
次のボタンのコードは次のとおりです。
- (IBAction)nextButtonPressed:(id)sender {
[self dismissKeyboard:sender];
}
nextButtonPressedのコードが間違っていることはわかっています。どのUITextFieldがキーボードを呼び出して表示するかを特定し、Senderをパラメーターとして渡してdismissKeyboardを呼び出すのに助けが必要だと思います。
ありがとう