1

ユーザーが [戻る] ボタンを押してアクティブな UINavigationController から現在の UIViewController をポップする場合、特定の特殊なケースでは、同じナビゲーション コントローラーから別の UIViewController (新しいトップのもの) をプログラムでポップする必要があります。

(詳細には立ち入りませんが、これは Apple のヒューマン インターフェイス ガイドラインに違反していないと信じてください。逆に、余分な VC をポップしないと、ガイドラインに違反する可能性があります)。

考えられる唯一の方法は に を配置することですpopViewControllerAnimated:viewWillDisappear:、残念ながらこれは機能しません (ポップしたい VC が の最後のオブジェクトとして表示されますがself.navigationController.viewControllers)。私は電話で YES と NO の両方を試しました。

VC がいつポップされようとしているのかを検出する動作がなく、VC がプッシュされようとしているときにのみ検出するため、viewWillDisappear:以前に VC がいつポップされようとしているのかを検出する方法を見つけることができませんでした。UINavigationControllerDelegate

これを行う方法はありますか?

4

1 に答える 1

1

iOS5 には、ポップされようとしているかどうかを検出するために使用できる便利な新しい方法がいくつかあります。

UIViewController コンテインメント セクションを参照してください。

- (BOOL)isBeingPresented __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
- (BOOL)isBeingDismissed __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
- (BOOL)isMovingToParentViewController __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
- (BOOL)isMovingFromParentViewController __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_5_0);
于 2012-07-16T14:41:46.193 に答える