2 つUITextFields
の があり、その入力を文字列player1
とに保存しますplayer2
。これらUITextFields
はViewController
、popOver セグエによって呼び出されます。UITextFields
ビューが変更された後、テキストを表示し続けるにはどうすればよいですか?
無駄のセクションで試してみtextFieldOne.text = player1;
ました。何か案は?viewDidLoad
ViewController
2 つUITextFields
の があり、その入力を文字列player1
とに保存しますplayer2
。これらUITextFields
はViewController
、popOver セグエによって呼び出されます。UITextFields
ビューが変更された後、テキストを表示し続けるにはどうすればよいですか?
無駄のセクションで試してみtextFieldOne.text = player1;
ました。何か案は?viewDidLoad
ViewController
読み込まれたビューのデリゲートが でないViewController
場合、コードは実行されません。したがって、コードが読み込まれたビューのデリゲートにあることを確認してください。も使用します[textFieldOne setText:player1]
。ivar を直接設定するのではなく、setter メソッドを呼び出す方が常に優れています。次に、 yourUITextField
が nil ではなく、正しくバインドされていることを確認してください。を使用textFieldOne = [[UITextField alloc] init]
して初期化します。問題が解決しない場合は、 も試してください[textFieldOne setText:self.player1]
。それが役に立てば幸い..
編集:ここで解決策を得ました。プレイヤー名が保存され、各ビューで、またアプリを再度開いた後でも使用できるように使用する必要NSUserDefaults
があります (これが必要ない場合は、昼食時にデフォルトを消去できます。変更する必要があるコードの束は次のとおりです。 :
hardOne.m :
- (void)viewDidLoad
{
[super viewDidLoad];
[hard1ON setOn:switchState animated:NO];
//read player names to user defaults
[textFieldOne setText:[[NSUserDefaults standardUserDefaults] stringForKey:@"player1"]];
[textFieldTwo setText:[[NSUserDefaults standardUserDefaults] stringForKey:@"player2"]];
}
- (IBAction) returnKey1
{
player1 = [textFieldOne text];
[players addObject:(player1)];
//set player1's name to user defaults
[[NSUserDefaults standardUserDefaults] setValue:[textFieldOne text] forKey:@"player1"];
}
- (IBAction) returnKey2
{
player2 = [textFieldTwo text];
[players addObject:(player2)];
NSLog(@"array: %@",players);
//set player2's name to user defaults
[[NSUserDefaults standardUserDefaults] setValue:[textFieldTwo text] forKey:@"player2"];
}