2011-10-21 23 views
1

我正在编写一个iPhone应用程序。如何从可可中的其他文件设置对象的属性?

而是写在这里所有的代码,这是basicly是我想做的事:

testViewController.m:

- (void)viewDidLoad { [email protected]"text"; } 

这工作。
现在我想更改testAppDelegate文件中的标签文本。

- (void)applicationDidBecomeActive:(UIApplication *)application { 
testViewController *tvc=[[testViewController alloc] init]; 
[email protected]"another text"; 
[tvc release]; 
} 

这不行!
我该怎么做?

感谢所有答案:)

+0

似乎你有两个不同的testViewController实例。 – user523234

回答

0

在.h文件中:定义属性:

@property (nonatomic, retain) UILabel *label; 

在.m文件:执行设置/获取该属性格式的方法(例如,自动):

@synthesize label; 
+0

再次阅读我的问题!这关乎两个不同的文件。 –

+0

再次阅读答案!它会让你完全按照你的要求去做。 –

+0

Okei,我试了一下。在代理.h文件中添加了该属性,并在代理.m中对其进行了合成。然后我直接在方法中调用它作为label.text = @“另一个文本”。我错过了什么吗? :) –

0

申报testViewController在testAppDelegate.h出口,履行其在厦门国际银行结合,可能MainMenu.xib,现在尝试改变其标签的价值 -

- (void)applicationDidBecomeActive:(UIApplication *)application 
3

在applicationDidBecomeActive要创建的视图控制器的一个新实例(这是分配/初始化)设置标签文本在您的新实例,然后将其释放。

您需要引用屏幕上视图控制器的实际实例。这可能已经在您的应用程序委托中引用了 - 例如,它是根视图控制器吗?它是在什么时候创建的?

您可能需要在应用程序委托上设置一个属性,以保存对此视图控制器的引用。您拥有的代码很好,只不过您正在与新控制器交谈,而不是屏幕上显示的代码 - 假设您的标签当然是视图控制器上的一个属性。

0

对不起!应该指定更多我在做什么。现在我学会了。 我有一个标签栏视图控制器模板。

@class testViewController 
@property(nonatomic,retain) UIViewController *testViewcontroller; 

,并在.m文件:

@synthesize testViewController=_tvc; 
- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
[email protected]"another text"; 
} 

当然和进口的testViewController.h和declearing方法有

我在委托.h文件中添加解决了这个太。

感谢您的回应:)

相关问题