0

NavControllerをプッシュせずに、NavController内のコンテンツを変更できるようにしようとしています。たとえば、ビューコントローラ「A」がある場合、ユーザーがジェスチャーまたはクリックを続行すると、ビューは別のビューコントローラ「X」に変わりますが、navcontrollerはビューコントローラ「X」をスタックにプッシュしません。したがって、ジェスチャを実行するか、[続行]をクリックして、viewController x、y、およびzを表示する可能性があります。ただし、いつでもNavbarを押すと、スタック上の前のviewControllerに戻ります。

明確にするために、ナビゲーションコントローラーに影響を与えないページコントローラーを実装できるようにしたいので、いつでもユーザーが押し戻すと、スタック上の前のビューコントローラーに戻ります。

この画像では、navcontroller上にあるViewControllerが示されています。ホワイトセクション内のページコントローラーを介して、異なるビュー間で変更できるようにしたいと思います。そこで、UIViewをそこにドラッグアンドドロップしました。そのUIviewをビューコントローラにフックしてページコントローラを実装することはできますか、またはnavcontrollerに影響を与えずに白いセクションを変更する方法を正確に行うことができますか?すべてに感謝します!

ここに画像の説明を入力してください

4

2 に答える 2

1

次の方法で、ビューコントローラの「スタック」の一番上(またはその中のどこか)にあるビューを変更できるはずです[UINavigationController setViewControllers: animated: ]

代わりに使用するViewControllerを交換し、View Controllerを別の方法ですでに表示している場合は、「animated」を「NO」に設定します。

于 2012-12-25T03:53:20.930 に答える
1

これらの他のコントローラー、x、y、およびzをスタックに含めるかどうかは、質問からは明確ではありませんでした。そうでない場合は、スタック上にあるコントローラーの1つの子ビューコントローラーとしてそれらを追加できます。これは、戻るボタンのアクションには影響しません。それでも前のコントローラーに戻ります(あなたがプッシュしたもの)。これは次のように実行できます。

 -(IBAction)addBlue:(id)sender {
        BlueController *blue = [self.storyboard instantiateViewControllerWithIdentifier:@"Blue"];
        [self addChildViewController:blue];
        [self.blue didMoveToParentViewController:self];
        blue.view.frame = self.view.bounds;
        [self.view addSubview:blue.view];
    }
于 2012-12-25T06:10:13.933 に答える