Cod*_*ton 11 xcode objective-c uitextfield ios segue
我在ViewController1中有一个textField.我有一个push segue到我的ViewController2,它也有一个textField.我需要将ViewController2中的textField.text设置为等于ViewController1中textField中的文本.这是我的代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqual:@"ViewController2"])
{
ViewController2 *VCT = [segue destinationViewController];
VCT.title = @"View Controller #2";
VCT.textField.text = self.textField.text;
}
}
Run Code Online (Sandbox Code Playgroud)
标题制定者工作得很好.为什么textField不起作用?
Luc*_*rdo 22
你不能设置的文本UITextField
(以及任何其他部件,如UILabel
和UITextView
)在赛格瑞的准备,因为最近分配的控制器的所有视图组件尚未初始化(在这个时候,他们都是nil
),他们只将当showController被呈现(并且它的视图被加载).
您必须NSString
在显示的viewController中创建一个属性,然后在另一个视图控制器中的某个位置创建一个属性,例如viewDidLoad
,将textField的文本设置为此属性值.
像这样:
在viewController中将呈现另一个viewController:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ViewController2"])
{
ViewController2 *vc2 = [segue destinationViewController];
vc2.myString = self.textField.text;
}
}
Run Code Online (Sandbox Code Playgroud)
在提出的viewController里面:
- (void)viewDidLoad
{
[super viewDidLoad];
(...)
self.textField.text = self.myString;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10602 次 |
最近记录: |