在Objective-C中从另一个类访问一个实例中的变量

时间:2012-03-04 05:41:37

标签: objective-c class variables uiviewcontroller uitextfield

我遇到的问题是我有几个ViewController,我想从另一个ViewController中的一个ViewController访问变量。这可能很简单地解决了(但我无法解决这个问题),但如果我在UITextField中有一个名为myTextField的{​​{1}},我该如何访问{{} 1}}来自ViewController1

我尝试在我的第二个类中实例化myTextField.text,但这不起作用,因为那只是类的新实例化,而不是已经实例化的类,因此所有变量都没有正确的价值观。

提前致谢!

3 个答案:

答案 0 :(得分:1)

无论你想做什么,几乎肯定是错的。至少,它违反了你试图从另一个视图中访问一个视图的视觉效果的规则。

您应该将计划共享的UITextField数据放入模型类中,无论它是什么,并通过模型访问该数据,而不是尝试访问直接UITextField

答案 1 :(得分:0)

访问所有视图控制器中文本字段的简单方法。

  • 创建一个新类(NSObject的子类)
  • 使它成为单身......仅仅是生命周期中的一个实例 程序
  • 将文本存储在单件类中。
  • 在其他视图控制器中检索单例并加载文本..

目标-c中的谷歌单身人士可以找到更多相关信息。

答案 2 :(得分:0)

我发现,最简单的方法是创建一个静态方法,该方法返回您尝试访问的变量,无论是在类中还是在第一个中作为实例变量查看控制器。

第一视图控制器

+ (NSString*) returnSomestring{
    return myVariable;
    //myVariable can be replaced with textView.text or whatever you need it to be.
}

第二视图控制器

#import "FirstViewController.h"

- (void) doSomething{
    NSString* var = [FirstViewController returnSomestring];
    //Code
}

问题解决了!