2

プロジェクトに navigationController がある場合に popToRootViewController を使用できることはわかっていますが、プロジェクト全体が presentViewControllers に基づいており、複数のレベルに移動するシナリオがあります。レベルが 1 つしかない場合は、現在のビュー コントローラーを閉じることでルート ビュー コントローラーに戻ることができますが、複数のレベルに落ちたときにルート ビュー コントローラーに戻る方法がわかりません。誰かが私にここでアドバイスしてもらえますか?

次のコードを使用しようとしましたが、アプリがクラッシュしました!

- (IBAction)mainMenuButtonPressed:(id)sender {
    MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
    [self presentModalViewController:delegate.window.rootViewController animated:YES];
}

ありがとう。

4

2 に答える 2

4

私があなたを正しく理解していれば、あなたはいくつかのモーダルビューコントローラーを提示しており、ルートビューコントローラーに戻りたいと考えています。それが正しければ、次のコードが機能するはずです。

- (IBAction)mainMenuButtonPressed:(id)sender {
    MyAppDelegate *delegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
    [delegate.window.rootViewController dismissModalViewControllerAnimated:YES];
}
于 2012-03-28T18:14:13.077 に答える
0

スウィフト版

var = APP_DELEGATE = UIApplication.sharedApplication().delegate as! AppDelegate
APP_DELEGATE.window?.rootViewController?.dismissViewControllerAnimated(true, completion: nil)

Swift3

let APP_DELEGATE = UIApplication.shared.delegate as! AppDelegate
            APP_DELEGATE.window?.rootViewController?.dismiss(animated: true, completion: nil)
于 2015-10-30T10:06:43.720 に答える