我正在开发iOS应用程序。
视图层次结构就像,
- HomePageNavigationView
- LoginNavigationView
- UserProfileView
appDelegate的根视图控制器是HomePageViewController
在主页的viewWillAppear中,我检查是否有验证令牌。
如果没有验证令牌,那么我将登录导航视图显示为模态视图。
在登录/注册过程之后,需要编辑用户配置文件。 UserProfileView显示为模态视图。
另一种情况是,在打开应用程序后,找到了验证令牌,但用户配置文件未完成,因此我必须在主页上将用户配置文件显示为模态视图。
那么如何实现这种层次结构,当我在主页上显示的登录导航视图中呈现userProfile视图时,如何解除视图控制器两次?
答案 0 :(得分:0)
因此,您可以为UserProfileViewController创建块属性
@property(nonatomic,copy)void(^onDismissed)();
在LoginViewController中:
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];
}];