弹出到两个模态视图控制器

时间:2016-06-23 06:27:40

标签: ios objective-c

我正在开发iOS应用程序。

视图层次结构就像,

- HomePageNavigationView

- LoginNavigationView

- UserProfileView

appDelegate的根视图控制器是HomePageViewController

在主页的viewWillAppear中,我检查是否有验证令牌。

如果没有验证令牌,那么我将登录导航视图显示为模态视图。

在登录/注册过程之后,需要编辑用户配置文件。 UserProfileView显示为模态视图。

另一种情况是,在打开应用程序后,找到了验证令牌,但用户配置文件未完成,因此我必须在主页上将用户配置文件显示为模态视图。

那么如何实现这种层次结构,当我在主页上显示的登录导航视图中呈现userProfile视图时,如何解除视图控制器两次?

1 个答案:

答案 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];
 }];