gpt4 book ai didi

iOS – 显示导航堆栈中已有的 View Controller

转载 作者:可可西里 更新时间:2023-11-01 05:06:46 25 4
gpt4 key购买 nike

这可能很容易排序,但我无法弄清楚。我有一个带有两个选项卡的选项卡栏应用程序,每个选项卡都有一个 UINavigationController

假设我在选项卡 1 中推送一个名为 ItemViewController 的 View Controller ,然后转到选项卡 2。我想从选项卡 2 以编程方式显示 ItemViewController。所以它应该首先将我带到选项卡 1,然后显示 ItemViewController

这很容易实现,只需点击选项卡 1 选项卡项即可,但出于其他原因,我想以编程方式执行此操作。

我现在正在做的事情是:

[tab1NavController popToRootViewControllerAnimated:NO];
[tabBarController setSelectedIndex:0];
[tab1NavController pushViewController:itemViewController animated:NO];

我希望能够用伪代码做这样的事情:

if(viewControllerIWantToDisplayIsOnNavStack)
[tab1NavController presentViewController:viewControllerIWantToDisplay];
else
//instantiate and pushviewcontroller onto stack

我怎样才能做到这一点?

最佳答案

// check if the desired controller is on the stack in tab 1
if([[tab1NavController viewControllers] containsObject:viewControllerIWantToDisplay]) {
// desired controller is on the stack, let's see if it's on top
if(tab1NavController.topViewController == viewControllerIWantToDisplay) {
// no need to do anything
}
else {
// we need to pop to the desired view controller
[tab1NavController popToViewController:viewControllerIWantToDisplay animated:NO];
}
} else {
// desired controller not on the stack
[tab1NavController pushViewController:viewControllerIWantToDisplay animated:NO];
}

因此您不必再在选项卡 1 中弹出到 Root View Controller 。

关于iOS – 显示导航堆栈中已有的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9228092/

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