我有两个UITextFields
,我将它们的输入存储到字符串player1
和player2
. 这些UITextFields
是ViewController
由 popOver segue 调用的。UITextFields
一旦视图发生变化,我怎样才能让他们的文本继续显示?
我尝试textFieldOne.text = player1;
在该viewDidLoad
部分ViewController
无济于事。有任何想法吗?
我有两个UITextFields
,我将它们的输入存储到字符串player1
和player2
. 这些UITextFields
是ViewController
由 popOver segue 调用的。UITextFields
一旦视图发生变化,我怎样才能让他们的文本继续显示?
我尝试textFieldOne.text = player1;
在该viewDidLoad
部分ViewController
无济于事。有任何想法吗?
如果您加载的视图的委托不是ViewController
,您的代码将不会被执行。因此,请确保您的代码位于已加载视图的委托上。也用[textFieldOne setText:player1]
。调用 setter 方法总是比直接设置 ivar 更好。然后确保你UITextField
的不是 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"];
}