【问题标题】:Moving Info Between View Controllers在视图控制器之间移动信息
【发布时间】:2014-07-07 01:52:15
【问题描述】:

我是 iOS 新手,正在尝试找出一些可能是基本的东西。我有两个 UIView,每个页面上有四个按钮,每个按钮下面有四个标签。基本上,如果我按下视图控制器 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";

}

它过渡得很好。但是,我在过渡期间尝试更改标签的文本时遇到了麻烦。我收到三个错误:“Unknown receiver: ViewController2”、“Unknown type name: ViewController2”和“Property label1 not found on type of ViewController *”。因此,看来我在设置更改文本时遇到了麻烦。有谁知道我在这里做错了什么?

【问题讨论】:

    标签: ios uiviewcontroller transitions


    【解决方案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];
    

    【讨论】:

    • 谢谢。我这样做了,我收到错误“在 UIViewController 类型的对象上找不到属性 label1”。
    • 哦,我明白了。您将要创建一个继承自 UIViewController 并具有 4 个标签的公共属性的新类。然后创建 vc 作为那种类型的视图控制器,而不仅仅是标准的。
    • 谢谢。这超出了我的想象,但我会研究它
    • 我发现 AppCoda 教程非常擅长解释此类内容。我相信他们有关于使用 segues 传递数据的教程
    【解决方案2】:

    您正在呈现的视图控制器,即将出现的视图控制器是vc。这就是您要设置标签的位置。

    代码的最后五行中提到的东西vc2 什么都不是:它只是你为五行带来的东西,然后它就烟消云散了,毫无意义。甚至很难想象这些代码行的用途是什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多