在我的应用程序中我有两个Tableview,一个是我的主要Tableview,第二个是我的Favourit tableview。首先,当我点击mainTableview的任何一行时,我在mainView中显示我的所有plist数据它转到Next Class作为我的屏幕截图显示如下
现在在这个视图中我有一个UILabel,显示我从主Tableview中选择的文本,最重要的是我有UIButton添加到收藏夹。我希望当我点击它保存当前UIlabel值,当我去favourit tableview然后我想在那里显示这个值。我尝试使用NSUserdefualt保存价值,但它不适用于我因为它保存最后一个值不保持以前的一个值的记录。我的代码是我试过的..
-(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];
}
有些人可以指导我如何解决它。谢谢。
答案 0 :(得分:1)
将数组存储在userDefault中,而不是像bellow那样存储...
在AppDelegate.h
文件中只声明变量...
NSUserDefaults *userDefaults;
NSMutableArray *yourArray;
after...
AppDelegate.m
方法中的applicationDidFinishLonching:
Fille
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使用Bellow Code ...
中插入数据之后[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];
我希望这可以帮助你...
答案 1 :(得分: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];