我是iOS的新手,我正在尝试找出可能基本的东西。我有两个UIViews,每页有四个按钮,每个按钮下面有四个标签。基本上,如果我按下视图控制器1上的按钮1,我希望视图控制器2上的所有标签都能简单地读取" 2"。这是一个更好的视觉形象:
我为视图控制器1上的每个UIButton设置了插座,并为视图控制器2上的每个标签设置了插座。
- (IBAction)button1Pressed:(id)sender {
UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
UIViewController *vc = [sb instantiateViewControllerWithIdentifier:@"viewController2"];
vc.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:vc animated:YES completion:NULL];
ViewController2 *vc2 = [[ViewController2 alloc]init];
vc2.label1.text = @"1";
vc2.label2.text = @"1";
vc2.label3.text = @"1";
vc2.label4.text = @"1";
}
它转换得很好。但是,我在转换过程中尝试更改标签的文字时遇到了麻烦。我收到了三个错误:"未知收件人:ViewController2" ,"未知类型名称:ViewController2" ,和#34;在ViewController *"类型的对象上找不到属性label1
。因此,我似乎无法设置更改文本。有谁知道我在这里做错了什么?
答案 0 :(得分:1)
您要呈现的视图控制器即将出现的视图控制器为vc
。这是您想要设置标签的地方。
你代码的最后五行中提到的东西vc2
,什么都不是:它只是你为五行产生的东西,然后它在一阵烟雾中消失,到没有目的。很难想象你可能会认为那些代码行是为了什么。
答案 1 :(得分:1)
替换
vc2.label1.text = @"1";
vc2.label2.text = @"1";
vc2.label3.text = @"1";
vc2.label4.text = @"1";
与
vc.label1.text = @"1";
vc.label2.text = @"1";
vc.label3.text = @"1";
vc.label4.text = @"1";
并删除
ViewController2 *vc2 = [[ViewController2 alloc]init];