0

popToViewController に関して、チーム メンバーと議論しています。

私にとって最善のアプローチは 、特定のViewControllerにポップできますか?

しかし彼は、viewController の静的インスタンスを作成してから呼び出す必要があると考えています。

-(void)takeToPreviousViewController {
    if([IVPreviousViewController sharedInstance]) {
        [self.navigationController popToViewController:[IVPreviousViewController sharedInstance] animated:YES];
    }
}

currentViewController とは関係のない IVPreviousViewController でパブリック メソッドを作成しているため、このアプローチを強く推奨します。このようなメソッド公開は常に避けるべきです。

誰かが最善のアプローチについて確固たる理由を教えてくれますか?

アップデート:

IVPreviousViewController.h

__weak static IVPreviousViewController * staticEventDetailViewController;

    +(IVPreviousViewController *)sharedInstance;

IVPreviousViewController.m

+(IVPreviousViewController *)sharedInstance {
    return staticEventDetailViewController;
}

このアプローチの理由 - viewController の特定のユース ケースでは、IVPreviousViewController に popback する必要があります。

4

2 に答える 2

2

これに対する私の見解は次のとおりです。

私はあなたの意見を支持します。可能な限り、静的共有インスタンスを避ける必要があります。静的インスタンスは、アプリの有効期限までメモリに残ります。このインスタンスから参照されている他のすべてのオブジェクトもメモリに残ります。

上記の共有リンク VC で説明したアプローチでは、不要になったリンク VC がメモリから取り出されます。また、多くの VC がない場合は、ターゲット VC をループして選択するのではなく、ソース VC からターゲット VC への弱い参照を使用することをお勧めします。

そして、はい、読みやすくするためにオブジェクティブ C のコンテキストでは、ヘッダー ファイルには、外の世界で本当に必要な API のみを含める必要があります。

于 2015-09-13T04:27:31.700 に答える