【问题标题】:How to access an Objective C variable from different view controllers?如何从不同的视图控制器访问 Objective C 变量?
【发布时间】:2011-08-08 22:02:16
【问题描述】:

我需要打电话:

 @property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *buttons;

来自视图控制器 x,但能够从视图控制器 y 访问和设置按钮颜色。基本上我正在制作一个允许不同配色方案的设置页面。有任何想法吗?谢谢!

【问题讨论】:

  • 在这里使用属性似乎是个坏主意,您最终会为要自定义的每个视图使用一个属性。相反,实现一个您的其他视图控制器可以调用的方法(将其设置为该控制器的委托方法是个好主意),使该方法接受颜色或主题之类的参数,并根据该方法在该方法中进行所有自定义你得到的参数。
  • 你能解释一下吗?我是新手。谢谢!

标签: xcode viewcontroller


【解决方案1】:

您可以使用委托。

基本上,viewcontroller y 将是 viewcontroller x 的代表,每次有人更改设置页面时,viewcontroller x 都会通知 viewcontroller y 该更改。 X 会这样通知 Y:

[delegate doSomething withParameter: parameter]

Viewcontroller y 然后将使用该参数(您尝试传递的变量)执行某些方法。

还有一些其他的事情,所以你应该阅读委托

【讨论】:

    【解决方案2】:

    在实例化视图控制器 Y 时,您需要传递对视图控制器 X 的引用:

    ViewControllerY *viewController = [[[ViewControllerY alloc] initWithNibName:@"ViewControllerY" bundle:nil] autorelease];
    viewController.viewControllerX = myRefToViewControllerX; //declare a property on your ViewControllerY
    //show view controller Y
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      相关资源
      最近更新 更多