2012-12-21 71 views
1

在我的應用我有兩個Tableviews一個是我的主要泰伯維和第二個是我表現出MAINVIEW我所有的plist數據,我Favourit tableview.First當我點擊我的MainTableview的任何行它轉到下一個類爲My Screen下面
enter image description here如何在第二個表格視圖中顯示選中的plist數據?

截圖顯示的是在現在這個視圖我有一個UILabel這表明從主泰伯維選擇我的文字,最重要的是我已經UIButton的加入收藏。我想,當我點擊它保存當前的UILabel值,當我去favourit tableview中的話,我想將此值.......我儘量節省使用NSUserdefualt價值,但它不是爲我工作怎麼一回事,因爲它保存的最後一個值跟不上透水一個values.here的紀錄是我的代碼,我試圖所以..

-(IBAction)AddToF 
{ 
    NSString *str=lblText.text; 
[[NSUserDefaults standardUserDefaults] setObject:str forKey:@"preferenceName"]; 
} 

然後在Favurit tableview中我得到這些值

- (void)viewWillAppear:(BOOL)animated 
{ 
    NSString *savedValue = [[NSUserDefaults standardUserDefaults] 
         stringForKey:@"preferenceName"]; 
[super viewWillAppear:animated]; 
} 

一些能引導我如何解決它。謝謝。

回答

1

存儲陣列中userDefault,而不是像波紋管串..

AppDelegate.h文件只是聲明變量...

NSUserDefaults *userDefaults; 
NSMutableArray *yourArray; 
after... 

AppDelegate.m豪情在applicationDidFinishLonching:方法

userDefaults = [NSUserDefaults standardUserDefaults]; 
NSData *dataRepresentingtblArrayForSearch = [userDefaults objectForKey:@"yourArray"]; 
if (dataRepresentingtblArrayForSearch != nil) { 
    NSArray *oldSavedArray = [NSKeyedUnarchiver unarchiveObjectWithData:dataRepresentingtblArrayForSearch]; 
    if (oldSavedArray != nil) 
     yourArray = [[NSMutableArray alloc] initWithArray:oldSavedArray]; 
    else 
     yourArray = [[NSMutableArray alloc] init]; 
} else { 
    yourArray = [[NSMutableArray alloc] init]; 
} 
[yourArray retain]; 

後,當你想在這個UserDefaults使用貝婁代碼中插入數據...

[appDelegate.yourArray addObject:yourDataString];///set your value or anything which you want to store here... 
NSData *data=[NSKeyedArchiver archivedDataWithRootObject:appDelegate.yourArray]; 
[appDelegate.userDefaults setObject:data forKey:@"yourArray"]; 
[appDelegate.userDefaults synchronize]; 
當你想創建,然後 AppDelegate對象使用婁代碼

..

AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; 

我希望這會幫助你...

+0

感謝您的快速回答,但如何從中重新獲得價值。 – NSCool

+0

嘿,我看到我從userdefault從oldsavearray同樣喜歡..只是實現這個邏輯,你想要得到的數據,也只是用appDelegate.yourArray試試這個:) –

+0

給我一個錯誤userDefaults undeclear [appDelegate.userDefaults的setObject獲取數據:數據forKey:@ 「yourArray」]; [appDelegate.userDefaults synchronize];在這些線路 – NSCool

0

只是告訴你3個簡單的步驟。

1 - 從已保存的plist讀取舊的數據文件

NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 

NSMutableArray *array = [NSArray arrayWithContentsOfFile:filePath]; 

NSLog(@"fav List = %@", array); 

2 - 現在,在添加使用

[array addObject:someItem]; 

3個新項目 - 將數據保存到plist中

[array writeToFile:filePath atomically:YES]; 
相關問題