使用 Unwind segue UITextField 传递数据
Passing data with Unwind segue UITextField
我有两种看法:
View1(商店):URL 存储在 NSString 中用于显示图像。
View2 (ModifyShop):来自 view1 的带有 URL 的文本字段。
我可以将数据从 view1 传递到 view2 : NSString 中存储的 URL 出现在文本字段中。
现在我想用视图 2 中的文本字段修改此 URL 并修改视图 1 中的 NSString。我该怎么做?
这是我的代码:
商店:
- (void)viewDidLoad {
[super viewDidLoad];
[self.modifyButton setHidden:YES];
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)prepareForUnwind:(UIStoryboardSegue *)segue {
NSLog(@"%@", self.imageButtonURL);}
修改商店:
- (void)viewDidLoad {
[super viewDidLoad];
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.photoURL.text = [NSString stringWithFormat:@"%@", self.imageButtonURL];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
Shop *viewcontroller = (Shop *)segue.destinationViewController;
viewcontroller.imageButtonURL = self.photoURL.text;
}
这让我的应用程序崩溃了:
[Reports setImageButtonURL:]: unrecognized selector sent to instance
错误是说您要在 Reports 的实例上设置 imageButtonURL,而不是在您认为目标视图控制器所在的 Shop 上。看来您的放松将转到错误的控制器。您一定是错误地连接了 unwind segue。你说你有 2 个视图(实际上是视图控制器),但你的应用程序中还必须有一个报告 class。
我有两种看法: View1(商店):URL 存储在 NSString 中用于显示图像。
View2 (ModifyShop):来自 view1 的带有 URL 的文本字段。
我可以将数据从 view1 传递到 view2 : NSString 中存储的 URL 出现在文本字段中。
现在我想用视图 2 中的文本字段修改此 URL 并修改视图 1 中的 NSString。我该怎么做?
这是我的代码:
商店:
- (void)viewDidLoad {
[super viewDidLoad];
[self.modifyButton setHidden:YES];
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)prepareForUnwind:(UIStoryboardSegue *)segue {
NSLog(@"%@", self.imageButtonURL);}
修改商店:
- (void)viewDidLoad {
[super viewDidLoad];
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.photoURL.text = [NSString stringWithFormat:@"%@", self.imageButtonURL];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
Shop *viewcontroller = (Shop *)segue.destinationViewController;
viewcontroller.imageButtonURL = self.photoURL.text;
}
这让我的应用程序崩溃了:
[Reports setImageButtonURL:]: unrecognized selector sent to instance
错误是说您要在 Reports 的实例上设置 imageButtonURL,而不是在您认为目标视图控制器所在的 Shop 上。看来您的放松将转到错误的控制器。您一定是错误地连接了 unwind segue。你说你有 2 个视图(实际上是视图控制器),但你的应用程序中还必须有一个报告 class。