0

スタック内の 4 つのビューでモーダルに表示されるナビゲーション コントローラーがあります。最後のビューには、モーダル ビューを閉じる完了ボタンがあります。次にモーダル ビューを再度表示すると、最初のビューではなく、最後のビューに自動的に移動します。閉じた後に最初のビューにポップする行を追加しましたが、YES または NO に設定すると奇妙なアニメーションが追加されます。多分私はそれを間違っていますか?

- (void)dismissModalView
{
    [self dismissModalViewControllerAnimated:YES];
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:([self.navigationController.viewControllers count] -4)] animated:YES];
}

アップデート:

これは、モーダル ビュー/navcontroller を表示するために使用されるメソッドです。

- (void)showModalView
{
    self.optionsNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self.navigationController presentModalViewController:self.optionsNavController animated:YES];
}
4

3 に答える 3

0

いいえ、正しく見えます。ナビゲーションコントローラーの状態を保持したい場合は、ビューを閉じたときに割り当てが解除されるため、モーダルに表示しないでください。

モーダルビューは通常、ビューの状態(つまり、ページ、ログインページ、設定ページなど)を維持せずに、簡単に表示する必要がある情報を表示するために使用されます。

于 2011-09-12T01:06:27.097 に答える
0

あなたが投稿した却下コードの問題が何であるかはわかりませんが、次のように動作するはずです:

- (void)showModalView
{
    self.optionsNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    [self.optionsNavController popToRootViewControllerAnimated:NO];
    [self.navigationController presentModalViewController:self.optionsNavController animated:YES];
}

また、ビューが読み込まれるviewDidLoadたびに一度だけ呼び出されることを意図しています。viewWillAppear

于 2011-09-12T03:48:48.267 に答える
0

問題を単純化しすぎている場合は申し訳ありませんが、最初のビュー コントローラーに直接戻る必要がある場合は、popToRootViewControllerAnimated:代わりにメソッドを試してみてくださいpopToViewController:

于 2011-09-12T03:43:26.737 に答える