3

私は RegistrationViewController と LoginViewController を持っています:

LoginViewController は私の InitialViewController/RootViewController です。

登録してRegistrate-Buttonをクリックすると、MainViewControllerに自動的にプッシュされます。Logout-Button を押すと、RegistrationViewController に却下されました。

  - (IBAction)logoutPressed:(id)sender {
  [self dismissModalViewControllerAnimated:YES];
   }

Logout-Button を押した場合、LoginViewController を無視するにはどうすればよいですか。

4

4 に答える 4

6
-(void)dismissToRootViewController
{
    UIViewController *vc = self;
    while (vc.presentingViewController) {
        vc = vc.presentingViewController;
    }
    [vc dismissViewControllerAnimated:YES completion:nil];
}
于 2015-07-23T04:24:05.400 に答える
5

UINavigationController メソッドを使用できます-popToRootViewControllerAnimated:

- (IBAction)logoutPressed:(id)sender {
    [self.navigationController popToRootViewControllerAnimated:YES];
}

代わりに、複数のモーダル ビューが重ねて表示されている場合は、ドキュメントで説明されているように-dismissViewControllerAnimated:completion:、古い-dismissModalViewControllerAnimated:ものをスタック内の最下位に送信することで、それらすべてを閉じることができます。

複数のビュー コントローラーを連続して提示し、提示されたビュー コントローラーのスタックを構築する場合、スタック内の下位のビュー コントローラーでこのメソッドを呼び出すと、その直接の子ビュー コントローラーと、スタック上のその子の上のすべてのビュー コントローラーが破棄されます。これが発生すると、最上位のビューのみがアニメーション形式で閉じられます

于 2012-05-02T09:32:06.033 に答える
3

試してみてください、私のために働きました。

 [[[UIApplication sharedApplication] keyWindow].rootViewController dismissViewControllerAnimated:YES completion:nil];
于 2017-10-25T07:16:28.473 に答える