在您的第二个视图控制器中创建一个名为theText
that的属性NSString
,然后将其viewDidLoad
分配label.text
给NSString
;
- (void)viewDidLoad
{
if(self.theText)
self.label.text = self.theText;
}
现在使用您的第一个视图控制器theText
在第二个视图控制器中进行设置。
如果您使用的是 segue,请使用prepareForSegue
:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"Second View Segue"])
{
SecondViewController *theController = segue.destinationViewController;
theController.theText = @"Some text";
}
}
如果您使用某种模态演示:
SecondViewController *theController = [[SecondViewController alloc] init];
theController.theText = @"Some text";
[self presentModalViewController:theController animated:YES];
或者如果您使用的是导航控制器:
SecondViewController *theController = [[SecondViewController alloc] init];
theController.theText = @"Some text";
[self.navigationController pushViewController:theController animated:YES];
所以你的第一个视图控制器将NSString
在第二个中设置属性,然后第二个将在加载期间设置UILabel
等于。在加载第二个视图控制器之前,NSString
您不能设置 a 的文本,例如:UILabel
SecondViewController *theController = [[SecondViewController alloc] init];
theController.label.text = @"Some text";
[self.navigationController pushViewController:theController animated:YES];
将无法正常工作,因为在加载视图之前您无法设置标签的文本。
希望有帮助。