我知道这个问题被问过100次,但我无法弄清楚我做错了什么。
这是我的第二个iOS应用程序。我想通过按ViewControllerA中的Button来修改ViewControllerB中的Label。
ViewControllerA
)到ViewControllerB
制作了一个Segue,称之为“TestSegue”。#import "ViewControllerB.h
ViewControllerA.h
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"TestSegue"]){
ViewControllerB *controller = (ViewControllerB *)segue.destinationViewController;
controller.TestLabel.text = @"TEST!";}}
In my ViewControllerB nothing happens with the TestLabel...
Can anybody see what I did wrong?
Thanks in advance
Edit:
Works now thanks to rpledge.
New Code:
if([segue.identifier isEqualToString:@"TestSegue"]){
ViewControllerB *controller = (ViewControllerB *)segue.destinationViewController;
controller.TestLabel.text = @"TEST!";}}
答案 0 :(得分:1)
可能是因为在运行viewDidLoad之前不会创建TextLabel UI元素,这将在prepareForSegue之后发生:
我不喜欢公开公开视图的UI元素,我建议您将NSString *的@property添加到目标视图控制器,然后在viewDidLoad中设置UILabel.text:
答案 1 :(得分:0)
不要将其分配给控件,而是分配给实例变量。
@property (nonatomic) NSString *var;
然后在viewDidLoad中将其分配给控件。