2011-02-14 208 views

回答

4

您想在每個控制器的property

@interface MyViewController : UIViewController{ 
    NSString *title; 
} 
@property (retain) NSString *title; 
@end; 


@implementation MyViewController 
@synthesize title; 
@end; 

這樣使用它:

MyViewController *myVC = [[MyViewController alloc] initWithFrame:...]; 
myVC.title = @"hello world"; 

你應該熟悉Memory Management

+0

你是說每個MyViewController應該有一個NSString *標題? – aherlambang 2011-02-15 00:14:22

+0

這只是一個例子。你可以命名該成員`banana`或`penelope` – vikingosegundo 2011-02-15 00:19:28

+0

如果MyViewController2想要使用這個標題怎麼辦? – aherlambang 2011-02-15 03:15:29

1

分享您共同創建一個類對象。使用靜態方法檢索它,然後讀取和寫入其屬性。

@interface Store : NSObject { 
    NSString* myString; 
} 

@property (nonatomic, retain) NSString* myString; 

+ (Store *) sharedStore; 

@end 

@implementation Store 

@synthesize myString;  

static Store *sharedStore = nil; 

// Store* myStore = [Store sharedStore]; 
+ (Store *) sharedStore { 
    @synchronized(self){ 
     if (sharedStore == nil){ 
      sharedStore = [[self alloc] init]; 
     } 
    } 

    return sharedStore; 
} 

// your init method if you need one 

@end 
換句話說

,寫:

Store* myStore = [Store sharedStore]; 
myStore.myString = @"myValue"; 

和讀取(在另一視圖中控制器):

Store* myStore = [Store sharedStore]; 
myTextField.text = myStore.myString; 
0

如果字符串保持相同,而且從不改變,你可以創建一個文件命名defines.h(不包括.m文件),並有這一行:

#define kMyString @"Some text" 

那麼無論你需要的字符串,就導入定義文件,並使用常數。

#import "defines.h" 

比自定義類更簡單。

編輯:

沒有看到你需要從文本字段抓取。

在這種情況下,您可以將它存儲爲應用程序委託類的屬性並從那裏獲取它。代表可以從應用程序的任何位置訪問。

相關問題