メインのビュー コントローラーはナビゲーション コントローラーにあり、EditViewControllerDelegate
プロトコルに準拠しています。モーダルに表示する必要があるのは、2 つのビュー コントローラーのデリゲートです。
@interface EditViewController : UIViewController
@property (nonatomic) id <EditViewControllerDelegate> delegate;
@end
@interface EditSomethingViewController : EditViewController
@end
@interface EditSomethingElseViewController : EditViewController
@end
メソッドでは、 editViewController:(EditViewController *)evc didFinishEditing:(Something *) something
最初に必要なデータを取得してから、破棄しevc
て呼び出します
[self performSegueWithIdentifier:@"My Segue" sender:self];
「My Segue」はXcodeで定義されており、識別子はコードとXcodeの両方で同じです(呼び出されて例外がスローされるかどうかを確認するためだけに変更しようとしました)
「My Seque」のタイプをプッシュに変更すると、うまくいきました。しかし、モーダルでは、メインのView Controllerに戻った後は何もしません
私は何が欠けていますか?
編集:
ストーリーボードで誤って警告を見つけました! (「どこからでも見える」プロジェクトの警告ではないので、奇妙です)「ストーリーボードセグエの参照」の下の接続のインスペクターに、モーダルセグエの警告があります。それは言う:
(null) is not a valid containment controller key path
他のモーダルセグエをチェックしたところ、同じ警告が表示されましたが、コードでトリガーする必要がなかったため、以前は問題がありませんでした。
編集2:
-(void)editViewController:(EditViewController *) evc
didFinishEditing:(Something *) something
{
self.something = something;
[self dismissModalViewControllerAnimated:YES];
For ( OtherThing * otherThing in self.something.otherthingsArray)
{
NSLog(@"%@", otherThing);
}
[self performSegueWithIdentifier:@"My Segue" sender:self];
}