1

理解するのに時間がかかったので、これを共有します。これは、現在存在する場合に、モーダル ビューの二重スタックを取り除く必要がある場合です。

if(self.parentViewController.parentViewController)
        [self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];
else
    [self dismissModalViewControllerAnimated:YES];

モーダル ビューから呼び出されることがあるビューがあります。その場合、両方のビューを同時に削除する必要があります。それが唯一のモーダルビューだった状況に対処しながら。これはうまくいきました。

4

1 に答える 1

2

xCode 4.2 の時点で、これは機能しなくなりました。この状況に対処する新しい方法は次のとおりです。

if(self.presentingViewController.presentingViewController)
    [self.presentingViewController.presentingViewController dismissModalViewControllerAnimated:YES];
else
    [self dismissModalViewControllerAnimated:YES];

私の関連するスレッドで@Hollanceが指摘したように:

UIView の扱いが異なる iOS 5 SDK

「iOS 5 には、presentingViewController という名前の新しいプロパティがあります。parentViewController の意味は、新しいコンテナー ビュー コントローラー API で少し変更されたため、思ったときに常に設定されているとは限りません。それが現在の presentingViewController の目的です。」

于 2011-10-19T19:23:38.627 に答える