私は自分のアプリをストーリーボードに移動していますが、これまでのところ、とても良いです。
しかし、私は本当に理解できない何かを見つけて、私を心配しています。誰かがこれについていくつかの洞察を提供できれば幸いです。
私のアプリは通常のナビゲーションコントローラーを使用しています。新しいViewControllerに「進む」ために、カスタムセグエを使用しています。そこに問題はありません。ただし、アプリには、ナビゲーションスタックの最初に戻りたいポイントがあります。また、カスタムセグエを使用してその「ナビゲーション」を構成しました。そのために、最後のビューコントローラーを最初のビューコントローラーにドラッグしてインターフェイスビルダーでセグエを作成し(すでに奇妙に見えます)、カスタムセグエを実装しました。次の方法でメソッドを実行します。
-(void)perform
{
UIViewController *src = (UIViewController *)self.sourceViewController;
UIViewController *dest = (UIViewController *)self.destinationViewController;
[src.navigationController popToRootViewControllerAnimated:NO];
// Custom animation code here
}
...それは素晴らしい働きをします。しかし、なぜそれが機能するのかわかりません。私の考えでは、カスタムセグエは、最初のView Controllerの新しいインスタンスをインスタンス化し、それを「宛先」として割り当てる必要がありますが、セグエは、以前の既存のインスタンスに移動したいことを理解するのに十分賢いようです。 View Controllerは、新しいインスタンスを作成する代わりに、既存のインスタンスを「宛先」に割り当てます。
このようにセグエを使っても大丈夫かどうか誰か知っていますか?偶然に機能する可能性はありますが、将来は機能しなくなる可能性がありますか?セグエが使用しないViewControllerをインスタンス化しているので、とにかくメモリを無駄にしていますか?
よろしくお願いします!