在视图控制器之间移动信息

时间:2014-07-07 01:52:15

标签: ios uiviewcontroller transitions

我是iOS的新手,我正在尝试找出可能基本的东西。我有两个UIViews,每页有四个按钮,每个按钮下面有四个标签。基本上,如果我按下视图控制器1上的按钮1,我希望视图控制器2上的所有标签都能简单地读取" 2"。这是一个更好的视觉形象:

enter image description here

我为视图控制器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。因此,我似乎无法设置更改文本。有谁知道我在这里做错了什么?

2 个答案:

答案 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];