2017-03-04 3 views
-1

私はCustomNavigationViewControllerを持っており、ユーザーが既に登録されているかどうかを確認しています。はいの場合は、直接UserProfileVewControllerを開き、登録またはログイン画面をスキップします。ViewControllerをdismissできません

ユーザーがログアウトボタンをクリックすると、UserProfileVewControllerを却下しようとしていますが、何も起こりません。

CustomNavigationViewController.m

-(void) viewWillAppear: (BOOL) animated { 
    if([self isRegistered]) 
    { 
     UserProfileViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"UserProfileVewController"]; 
     [self pushViewController:vc animated:YES]; 
    } 
} 

UserProfileVewController.m

[self dismissViewControllerAnimated:YES completion:nil]; 

答えて

0

ビューコントローラのナビゲーションは2つのパターンで動作します。 1.プレゼンテーション(モーダルビュー) 2.親子(封じ込め)

  1. プレゼンテーション:第我々は

    を使用する第1のコントローラから移動するには[自己presentViewController:secondControllerアニメーション:YES終了:なし]

    今、再び第1のコントローラに来るように、前記第二のコントローラではなければならない

    [self.presentingViewController dismissViewControllerがアニメーション:YES]

  2. 親:NavigationController、TabBarControllerが例です。 NavigationControllerは、コントローラのスタックとして動作し、TabBarControllerコントローラの配列として動作します。

    ナビゲーションコントローラを使用してコントローラをナビゲーションコントローラに押し込んでいるため、戻るためには、閉じる前にポップする必要があります。したがって、2番目のビュー(子ビューコントローラー)では、

    [self.navigationController popViewControllerAnimated:YES]と記述する必要があります。

0

あなたはViewControllerををプッシュする場合は、あなただけのコントローラのみ

[self.navigationController popToRootViewControllerAnimated:YES]に戻ることのViewControllerを却下することはできません。

存在する場合のViewControllerは、[自己dismissViewControllerAnimated:YES完了:nilを]コントローラ

をバックアップしたいです。

関連する問題