-1

ナビゲーションコントローラーがあります。最初に VC をプッシュし、次に 12 のモーダル VC を提示しました。ここで、ルート viewController にポップしたいと思います。どうやってやるの?私を助けてください。

4

6 に答える 6

3

提示した12のモーダルビューを閉じる必要があります。popViewControllerまたはpopToRootViewControllerは機能しません。

于 2012-12-01T16:58:40.583 に答える
2

ルートビューに到達するには、モーダルビューを閉じます。

于 2012-12-01T17:20:52.507 に答える
1

申し訳ありませんが、あなたの質問を正しく理解できるかどうかわかりません。しかし、UINavigationControllerの
-(NSArray *)popToRootViewControllerAnimated:(BOOL)animated
は、検索対象ですか?

于 2012-12-01T16:49:44.267 に答える
0

ナビゲーションコントローラーがあり、1つのコマンドで複数のレベルをポップバックする利点を享受したい場合は、(またはモーダルセグエ)pushViewControllerではなく(またはプッシュセグエ)を使用する必要があります。presentViewController

他の人が指摘しているように、後続のコントローラーへのプッシュを修正している場合は、次の方法でポップバックできます。

[self.navigationController popToRootViewControllerAnimated:YES];
于 2012-12-01T16:59:37.637 に答える
0

プッシュされた VC を に伝えdismissViewControllerAnimated:completion:ます。これにより、提示されたすべての VC が閉じられます。これで、プッシュされた VC をポップできます。

于 2012-12-01T17:59:11.617 に答える
0

最初の NavigationController を AppDelegate のインスタンス変数に保持します。AppDelegate.h 内

@property (nonatomic, retain) UINavigationController *navigationControllerFirst;

RootViewController viewDidLoad に以下を追加します。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    app.navigationControllerFirst = self.navigationController;
}

次に、目的を達成するために、12 番目に提示されたモーダルで、次の関数を追加して RootViewController に戻ります。

- (IBAction)GoToHome:(id)sender {
    AppDelegate *app = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    [app.navigationControllerFirst dismissViewControllerAnimated:YES completion:^{
        [app.navigationControllerFirst popToRootViewControllerAnimated:YES];
    }];
}
于 2012-12-01T18:07:56.563 に答える