0
this answerから、デリゲートを使用するよりも簡単なSwiftクロージャを使用してデータを前のView Controllerに戻す方法があるようです。IOS:完了ブロックまたは閉鎖を使用して前のView Controllerにデータを戻す
スウィフト閉鎖はObjective-Cでブロックを使用するのと似ていることを考えれば、誰でも私の目的のCプロジェクトでこれを手助けすることができますか?スウィフトとデリゲートのアプローチは、1つのプロパティを設定するにはあまりにも複雑に思えます。ここで
はSWIFTコードです:
For sending a UIImage back in my case. In ViewControllerA:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let cropImageViewController = segue.destinationViewController as! CropImageViewController
cropImageViewController.choseImage = { image in
//Do what you want in here!
}
}
In ViewControllerB:
var choseImage : (UIImage -> Void)?
@IBAction func done(sender: AnyObject) {
choseImage?(croppedImage)
self.dismissViewControllerAnimated(true, completion: nil)
}
私はObjective-Cでセグエの準備が、後方にそれを渡す方法については困惑しています使用して前方にデータを渡すことができます。ここで
//launch VC
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"edit"]) {
...
destViewController.contact=contact;
}
//set property in presentingVC--THIS DOES NOT WORK.
self.presentingViewController.afterSave = YES;
[self dismissViewControllerAnimated:YES completion:nil];