私はAppをStoryboardsに移動しています。カスタムスタックを使用してナビゲーションスタックで後方に移動する
しかし、私は本当に理解していないと私が心配しているものを見つけました。私は誰かがこれについていくつかの洞察を提供することができれば感謝します。
私のアプリは通常のナビゲーションコントローラを使用しています。新しいView Controllerに「前方」を移動するために、私はカスタムセグを使用しています。そこに問題はありません。しかし、アプリケーションには、ナビゲーションスタックの先頭に戻ってほしいという点があります。また、カスタムセグを使用してその「ナビゲーション」を設定しました。そのために、最後のビューコントローラを最初のものにドラッグしてInterface Builderでセグを作成しました。次の方法でメソッドを実行します。
-(void)perform
{
UIViewController *src = (UIViewController *)self.sourceViewController;
UIViewController *dest = (UIViewController *)self.destinationViewController;
[src.navigationController popToRootViewControllerAnimated:NO];
// Custom animation code here
}
...素晴らしいです。しかし、私はそれがなぜ機能するのか分かりません。私の考えでは、カスタムsegueは、最初のView Controllerの新しいインスタンスをインスタンス化し、それを "dest"として割り当てる必要がありますが、segueはスマートで、以前の、存在するインスタンスのaコントローラを表示し、新しいインスタンスを作成する代わりに、既存のインスタンスを「dest」に割り当てます。
このようにセグを使用しても問題ないのは誰でも知っていますか?それは偶然にも機能する可能性がありますが、将来は機能しなくなる可能性がありますか? SegueがView Controllerをインスタンス化しているので、私はとにかくメモリを浪費していますか?使用しないでしょうか?
ありがとうございます!
ありがとうございました!あなたは私が疑うものを確認しました。静的なカウンターについてあなたが言及したトリックが100%確実であることを忘れていました。将来のニーズに留意してください。その解決策として、私はセグメントなしで「逆方向」のナビゲーションを実装しますが、ストーリーボードはそれほどクリーンではありません:) – flainez
@psycoこれはARCとどのように機能しますか?どのようにDestinationControllerをリリースしますか? – Lucas