永久更改 NSString 值:NSUserDefaults?
Change NSString value for ever : NSUserDefaults?
我有两种看法:
View1(商店):URL 库存 NSString
用于显示图像。
View2 (ModifyShop):来自 view1 的带有 URL 的文本字段。
我可以将数据从 view1 传递到 view2 : NSString
中的 URL 出现在文本字段中,并将数据从 view2 传递到 view1。 (例如URL)
现在我想用视图 2 中的文本字段修改此 URL,并永久修改视图 1 中的 NSString
。我该怎么做?使用 NSUserDefaults
?
这是我的代码:
店铺:
- (void)viewDidLoad {
[super viewDidLoad];
[self.modifyButton setHidden:YES];
}
-(void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"admin"]) {
NSLog(@"pas admin");
} else {
[self.modifyButton setHidden:NO];
}
dispatch_async(dispatch_get_global_queue(0,0), ^{
self.imageButtonURL = @"http://bundoransurfshop.com/wp-content/uploads/2015/02/72-torq-pink.jpg";
imageButtonData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:self.imageButtonURL]];
if ( imageButtonData == nil )
return;
dispatch_async(dispatch_get_main_queue(), ^{
self.imageButton.imageView.image = [UIImage imageWithData: imageButtonData];
});
});
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"modifyShop"]) {
ShopModify *viewcontroller = (ShopModify *)segue.destinationViewController;
viewcontroller.imageButtonURL = self.imageButtonURL; }
}
-(IBAction)prepareForUnwindShopModify:(UIStoryboardSegue *)segue {
NSLog(@"%@", self.imageButtonURL);
}
商店修改:
- (void)viewDidLoad {
[super viewDidLoad];
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.photoURL.text = [NSString stringWithFormat:@"%@", self.imageButtonURL];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
Shop *viewcontroller = (Shop *)segue.destinationViewController;
viewcontroller.imageButtonURL = self.photoURL.text;
}
您可以按照以下 post:
在 NSUserDefaults 中存储 URL 字符串
Save string to the NSUserDefaults?
只需让您的 view1 始终从 viewWillAppear 中的 NSUserDefaults 获取它,并让 view2 更改 URL 字符串的 NSUserDefaults 键,这样就可以了
如果使用 foverer 你的意思是即使在你关闭并再次打开你的应用程序后,替换默认 http://bundoransurfshop.com/wp-content/uploads/2015/02/72-torq-pink.jpg,是的,例如你可以使用 NSUserDefaults(或任何其他持久的方式来存储你的 data/configuration).
在视图 2 中保存编辑:
[[NSUserDefaults standardUserDefaults] setObject:valueToSave
forKey:@"imageUrl"];
[[NSUserDefaults standardUserDefaults] synchronize]; //Important
Load/Reload 在视图 1 中:
NSString *savedUrl = [[NSUserDefaults standardUserDefaults] stringForKey:@"imageUrl"];
if(!savedValue){
savedUrl = @"http://bundoransurfshop.com/wp-content/uploads/2015/02/72-torq-pink.jpg";
}
NSUserDefaults 的官方文档。
我有两种看法:
View1(商店):URL 库存 NSString
用于显示图像。
View2 (ModifyShop):来自 view1 的带有 URL 的文本字段。
我可以将数据从 view1 传递到 view2 : NSString
中的 URL 出现在文本字段中,并将数据从 view2 传递到 view1。 (例如URL)
现在我想用视图 2 中的文本字段修改此 URL,并永久修改视图 1 中的 NSString
。我该怎么做?使用 NSUserDefaults
?
这是我的代码:
店铺:
- (void)viewDidLoad {
[super viewDidLoad];
[self.modifyButton setHidden:YES];
}
-(void) viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"admin"]) {
NSLog(@"pas admin");
} else {
[self.modifyButton setHidden:NO];
}
dispatch_async(dispatch_get_global_queue(0,0), ^{
self.imageButtonURL = @"http://bundoransurfshop.com/wp-content/uploads/2015/02/72-torq-pink.jpg";
imageButtonData = [[NSData alloc] initWithContentsOfURL: [NSURL URLWithString:self.imageButtonURL]];
if ( imageButtonData == nil )
return;
dispatch_async(dispatch_get_main_queue(), ^{
self.imageButton.imageView.image = [UIImage imageWithData: imageButtonData];
});
});
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"modifyShop"]) {
ShopModify *viewcontroller = (ShopModify *)segue.destinationViewController;
viewcontroller.imageButtonURL = self.imageButtonURL; }
}
-(IBAction)prepareForUnwindShopModify:(UIStoryboardSegue *)segue {
NSLog(@"%@", self.imageButtonURL);
}
商店修改:
- (void)viewDidLoad {
[super viewDidLoad];
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.photoURL.text = [NSString stringWithFormat:@"%@", self.imageButtonURL];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
Shop *viewcontroller = (Shop *)segue.destinationViewController;
viewcontroller.imageButtonURL = self.photoURL.text;
}
您可以按照以下 post:
在 NSUserDefaults 中存储 URL 字符串Save string to the NSUserDefaults?
只需让您的 view1 始终从 viewWillAppear 中的 NSUserDefaults 获取它,并让 view2 更改 URL 字符串的 NSUserDefaults 键,这样就可以了
如果使用 foverer 你的意思是即使在你关闭并再次打开你的应用程序后,替换默认 http://bundoransurfshop.com/wp-content/uploads/2015/02/72-torq-pink.jpg,是的,例如你可以使用 NSUserDefaults(或任何其他持久的方式来存储你的 data/configuration).
在视图 2 中保存编辑:
[[NSUserDefaults standardUserDefaults] setObject:valueToSave
forKey:@"imageUrl"];
[[NSUserDefaults standardUserDefaults] synchronize]; //Important
Load/Reload 在视图 1 中:
NSString *savedUrl = [[NSUserDefaults standardUserDefaults] stringForKey:@"imageUrl"];
if(!savedValue){
savedUrl = @"http://bundoransurfshop.com/wp-content/uploads/2015/02/72-torq-pink.jpg";
}
NSUserDefaults 的官方文档。