2017-03-04 40 views
-1

我有CustomNavigationViewController我在哪里检查用户是否已注册。如果是,则直接打开UserProfileVewController,跳过注册或登录屏幕。不能dismissViewController

无论何时用户点击注销按钮,然后我试图解雇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

视图控制器导航以两种模式进行操作。 1.介绍(模态次数) 2.亲子(遏制)

  1. 介绍:从第一控制器到第二,我们使用

    移动[自presentViewController:secondController动画:YES完成:无]

    现在,回过头来第一控制器,在第二控制器应该是

    [self.presentingViewController dismissViewController动画:是]

  2. 亲子关系:NavigationController,TabBarController就是例子。 NavigationController充当TabBarController控制器数组的控制器堆栈。

    由于您正在使用导航控制器并将控制器推入导航控制器,因此需要弹出而不是忽略。因此,在第二个视图(子视图控制器)中,它应该写为

    [self.navigationController popViewControllerAnimated:YES];

0

如果按视图 - 控制,你不能排除该视图 - 控制刚回到控制器仅

[self.navigationController popToRootViewControllerAnimated:YES];

如果存在的ViewController,要备份控制器

[自dismissViewControllerAnimated:YES完成:零]