在视图之间传递数据不起作用
我知道这个问题被问了100次,但我无法弄清楚我做错了什么。
这是我的第二个iOS应用程序。 我想通过在我的ViewControllerA中按下按钮来修改ViewControllerB中的标签。
ViewControllerA
)创建了一个Segue到我的ViewControllerB
并将其称为“TestSegue”。 ViewControllerA.h
写入#import "ViewControllerB.h
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"TestSegue"]){
ViewControllerB *controller = (ViewControllerB *)segue.destinationViewController;
controller.TestLabel.text = @"TEST!";}}
在我的ViewControllerB中,TestLabel没有任何反应......
任何人都可以看到我做错了什么吗?
提前致谢
编辑:现在工作感谢rpledge。
新代码:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if([segue.identifier isEqualToString:@"TestSegue"]){ ViewControllerB *controller = (ViewControllerB *)segue.destinationViewController; controller.TestString = @"TEST!";}}
这很可能是因为TextLabel UI元素在viewDidLoad运行之前不会创建,这将在prepareForSegue之后发生:
我不喜欢公开用户界面元素,我建议你为你的NSString *添加@property到目标视图控制器,然后在viewDidLoad中设置UILabel.text:
不要将它分配给控件,而是分配给一个实例变量。
@property (nonatomic) NSString *var;
然后在viewDidLoad中将其分配给控件。
链接地址: http://www.djcxy.com/p/61273.html