我有一个基于导航的应用程序,需要密码才能查看某些页面。当我在控制器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 时,是否有人知道如何从堆栈中删除密码控制器?
答案 0 :(得分:2)
使用UINavigationController
上的self.navigationController.viewControllers = @[ contA, contB ];
属性,如下所示:
ref={`inner-player${this.props.position}`}
通常,您希望在控制传递给控制器B后执行此行。
此问题还有其他一些代码示例:Matplotlib