iOS – 在导航堆栈中显示视图控制器

iOS – 在导航堆栈中显示视图控制器,第1张

概述这可能很容易排序,但我无法弄清楚.我有一个带有两个选项卡的标签栏应用程序,每个选项卡都有一个UINavigationController. 假设我在选项卡1中推送一个名为ItemViewController的viewcontroller,然后我转到选项卡2.从选项卡2我想以编程方式显示ItemViewController.所以它应该首先将我带到选项卡1,然后显示ItemViewController 这可能很容易排序,但我无法弄清楚.我有一个带有两个选项卡的标签栏应用程序,每个选项卡都有一个UINavigationController.

假设我在选项卡1中推送一个名为ItemVIEwController的vIEwcontroller,然后我转到选项卡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 1if([[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中d出根视图控制器.

总结

以上是内存溢出为你收集整理的iOS – 在导航堆栈中显示视图控制器全部内容,希望文章能够帮你解决iOS – 在导航堆栈中显示视图控制器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1078202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存