iOS:从导航堆栈中删除视图控制器

时间:2015-11-17 18:58:23

标签: ios objective-c uinavigationcontroller

我有一个基于导航的应用程序,需要密码才能查看某些页面。当我在控制器A 时,我想推送到密码控制器,然后推送到控制器B 并删除密码控制器从堆栈。

所以要明确,控制器A 控制器B 之间存在密码控制器,我不知道如何删除它。

我尝试了两种不同的方法,但两种方法都没有给我正确的结果。

尝试1:

ControllerB *contB = [self.storyboard instantiateViewControllerWithIdentifier:@"contB"];
[self.navigationController pushViewController:contB animated:YES];

[self.navigationController popViewControllerAnimated:NO];

尝试2:

ControllerB *contB = [self.storyboard instantiateViewControllerWithIdentifier:@"contB"];

ControllerA *contA = [self.storyboard instantiateViewControllerWithIdentifier:@"contA"];

[UIView transitionFromView:contA.view
                  toView:contB.view
                  duration:0.65f
                  options:(UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionTransitionCrossDissolve)
                  completion:^(BOOL finished){
                        self.view.window.rootViewController = contA;
                    }];

当我从密码控制器控制器B 时,是否有人知道如何从堆栈中删除密码控制器

1 个答案:

答案 0 :(得分:2)

使用UINavigationController上的self.navigationController.viewControllers = @[ contA, contB ]; 属性,如下所示:

ref={`inner-player${this.props.position}`}

通常,您希望在控制传递给控制器​​B后执行此行。

此问题还有其他一些代码示例:Matplotlib