2011-06-15 25 views
0

我在我的應用程序中使用了基於導航的視圖控制器。用戶可以點擊導航中的按鈕打開一個新的視圖,他們可以從幾個不同的選項中進行選擇。我想要發生的事情是用戶返回到原始視圖時,應用程序會將在第二個視圖中選擇的選項保存在原始視圖中的對象中。objective-c更新來自不同視圖的數據

我試過一些東西,但沒有一個可以工作。

我試圖創建原始視圖控制器的對象,將其變成一個屬性:

@property (nonatomic, retain) NSString *testing; 

然後在第二視圖控制器,當用戶選擇一個選項以這樣的更新它:

if (!oVC) 
    oVC = [[OriginalViewController alloc] init]; 

oVC.testing = object; 

我無法讓它工作。有人能指出我正確的方向嗎?這將不勝感激。

回答

1

NSUserDefaults的使用

在一個類:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults] 
[prefs setInteger:1 forKey:@"integerKey"]; 

在另一大類:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 
NSInteger myInt = [prefs integerForKey:@"integerKey"]; 

//Now myInt has the value 1. 

檢查這裏的Documentation

你也可以有NSNotification並通過一個NSDictionary類型:

NSDictionary *info = [NSDictionary dictionaryWithObject:@"Brad Pitt" forKey:@"User Name"]; 


[[NSNotificationCenter defaultCenter] postNotificationName:@"UserNameNotification" object:self userInfo:info]; 

然後你就可以添加觀察員和編寫相應的選擇方法。

+0

偉大的Legolas工程,謝謝。 – Plaidfox 2011-06-17 01:33:18

+0

呃...我有一個問題。現在我正在使用它,每當我從xcode重建它時,我都會得到與關閉模擬器時相同的數據。我只是想將數據從一個視圖傳遞到另一個視圖。這不是UserDefaults的用途嗎? – Plaidfox 2011-06-18 00:21:57

+0

那麼..每次你重建應用程序,它再次編譯自己。所以這個值應該和你在代碼中指定的一樣。放入一個簡單的方法...如果您在兩個視圖之間導航,並且希望值向前傳遞,請使用NSUserDefaults。如果您正在反向通信,請使用NSNotifications。 – Legolas 2011-06-18 02:48:23

相關問題