2011-06-14 71 views
0

好的,我有一個UITableView和一個UINavigationControllerUIBarButtonSystemItemAdd,並且當添加按鈕被按下時,它將用戶帶到一個帶有一些字段的新視圖。我希望能夠獲取用戶在這些字段中放置的信息並將其顯示在表格視圖中。我希望用戶能夠添加儘可能多的這些項目。UITableview從另一個類添加數據

現在我想起它,有點像聯繫人應用程序。用戶填寫聯繫人,然後當他們返回主列表時,新聯繫人就在那裏。

這樣做的最好方法是什麼?我試過NSUserDefaults和一堆arrays,但那真的很混亂。謝謝。

回答

1

我可以通過幾種方法來處理這個問題。最簡單和最好的方式是使用視圖控制器的模型演示文稿,而不是推送到它,就像iPhone上的聯繫人應用程序一樣。這樣你可以訪問你的tableview視圖控制器所需的所有數據,而不是試圖來回傳遞它。一旦用戶完成創建視圖控制器,模型視圖將被忽略,您可以從您的tableview中添加。開發人員文檔:http://developer.apple.com/library/ios/ipad/#featuredarticles/ViewControllerPGforiPhoneOS/AboutViewControllers/AboutViewControllers.html%23//apple_ref/doc/uid/TP40007457-CH112-SW16

+0

謝謝,這是一個非常好的主意,它爲我工作。我真的很感激它 – Andrew 2011-06-14 05:40:20

+0

另外,你碰巧知道如果一個自定義的委託會與推動導航控制器 – Andrew 2011-06-14 05:40:43

0

您是否正確使用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. 

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

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


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

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

+0

這就是我想要做的,但用戶可以最終輸入數據的hunderds。我將如何處理所有與'NSInteger myInt = [prefs integerForKey:@「integerKey」];',我必須創建說200'NSInteger myInt200' – Andrew 2011-06-14 03:13:15

0

最好的方法是UIController的模型演示風格。當用戶關閉視圖時,您的表視圖會通過委託方法得到通知,您可以在表視圖中添加該數據。

現在,如果您不想使用模型視圖樣式,那麼您可以使用NSUserDefault。

Thats what I was trying to do, but the user could ultimatly enter in hunderds of data. 

你不必考慮它應該做的是你首先重置NSUserDefault。然後將所有數據保存在NSUserDefault中,然後從表視圖中獲取這些數據。

[NSUserDefaults resetStandardUserDefaults]; 

你可以做的另一件事是在委託中創建一個變量並保存數據並將其存入表視圖中。但我不建議你這樣做。