2016-06-23 8 views
0

iOSアプリケーションで作業しています。2つのモーダルビューコントローラ内でrootViewControllerにポップアップする

ビュー階層は

、等である - appDelegateのルートビューコントローラはHomePageViewController

あるUserProfileView

アンド - HomePageNavigationView

- LoginNavigationView

私はホームページのviewWillAppearに、検証トークンがあるかどうかチェックします。

検証トークンがない場合は、ログインナビゲーションビューをモーダルビューとして表示します。

ログイン/サインアッププロセスの後、ユーザープロファイルを編集する必要があります。 UserProfileViewはモーダルビューとして表示されます。

その他の状況では、アプリケーションを開いた後に検証トークンが見つかりましたが、ユーザープロファイルが完成していないため、ユーザープロファイルをホームページにモーダルビューとして提示する必要があります。

この階層を実現するには、ホームページに表示されるログインナビゲーションビューでuserProfileビューを表示しているときに、View Controllerを2回却下するにはどうすればよいですか?

答えて

0

は、だから、LoginViewControllerでUserProfileViewController

@property(nonatomic,copy)void(^onDismissed)(); 

用ブロックプロパティを作成することができます

UserProfileViewController *profileViewCtr = [[UserProfileViewController alloc] init]; 
profileViewCtr.onDismissed = ^{ 
    [self(YOUR_LOGIN_VIEWCTR) dismissViewControllerAnimated:NO completion:nil]; 
}; 

とUserProfileViewに:

[self(YOUR_PROFILE_VIEWCTR) dismissViewControllerAnimated:YES completion:^{ 
    if (self.onDismissed) { 
     self.onDismissed(); 
    } 
}]; 

または単に

UserProfileViewでより
[self(YOUR_PROFILE_VIEWCTR) dismissViewControllerAnimated:YES completion:^{ 
    [self.presentingViewController dismissViewControllerAnimated:NO completion: nil]; 
}]; 
関連する問題