0

を使用してstoryboardsいます。これが私の見解です

My NavigationController --> [Series of ViewControllers] ->About View Controller

今からAboutViewController私は持っています

AboutViewController--> ViewController1-->ViewController2-->ViewController3-->ViewController4-->

に戻るAboutViewController using PUSH SEGUE

ここで、私がユーザーであり、上記を実行し、に戻った後、AboutViewController再びviewController1上に移動し、viewController4このループを何度も実行するとします。

ビューがスタックに置かれるため、これがメモリの問題を引き起こすかどうかを知りたいですnavigationControlleraboutViewControllerもしそうなら、元に戻るためにどのような戦略を使用する必要がありますかViewController4

4

1 に答える 1

0

いいえ、メモリの問題は発生しません。iOSが自動的に処理します。別のビューが存在する場合、強い参照サイクルがない場合(子ViewControllerの親への参照は常に弱い)、前のビューの割り当てが自動的に解除されます。各ビューコントローラに以下のようなinitWithCoderメソッドとdeallocメソッドを追加して、何が起こるかを確認できます。

- (id)initWithCoder:(NSCoder *)aDecoder
{
    if ((self = [super initWithCoder:aDecoder]))
    {
        NSLog(@"init ViewController");
    }
    return self;
}

- (void)dealloc
{
    NSLog(@"dealloc ViewController");
}

また、viewDidAppear-ViewDidDisappearメソッドを追加して、何が起こっているかを正確に確認します。本当におもしろいです。これが意味をなさない場合はお知らせください。

PS詳細については、iOS5チュートリアルのストーリーボードの開始を参照してください。

于 2012-10-03T09:19:12.967 に答える