2011-10-21 24 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文件中添加解決了這個太。

感謝您的迴應:)

相關問題