gpt4 book ai didi

iOS:从导航堆栈中删除 View Controller

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:56:26 24 4
gpt4 key购买 nike

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

明确地说,Passcode Controller 卡在Controller AController 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;
}];

有谁知道每当我从 Passcode Controller 中推送 Controller B 时如何从堆栈中删除 Passcode Controller

最佳答案

UINavigationController 上使用 viewControllers 属性,如下所示:

self.navigationController.viewControllers = @[ contA, contB ];

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

这个问题还有一些其他的代码示例:Removing viewcontrollers from navigation stack

关于iOS:从导航堆栈中删除 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33764905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com