【问题标题】:pushing onto navigation stack not within the nav controller推送到不在导航控制器内的导航堆栈
【发布时间】:2011-09-25 23:23:30
【问题描述】:

我有一个包含 UIImageView 的广告类。我已将类的一个实例添加到我的 appdelegate 到“窗口”视图中。

现在,我想,当用户点击广告时,将我的“detailedViewController”推送到当前导航控制器上,我的所有标签栏项目都包含该控制器。我不知道这是否可能。

也许,我应该将我的广告类添加到每个导航控制器的每个视图控制器中。但是,如果用户推送或更改视图控制器,它将重置类。

我只想将广告叠加一次。

编辑:

让我换个说法,我可以从应用程序委托和我的对象知道选择了哪个标签栏项目吗?如果我可以确定选择了哪个选项卡栏项,我可以指向适当的导航控制器实例。

【问题讨论】:

    标签: iphone ios cocoa-touch


    【解决方案1】:

    最简单的方法是将您的 DetailVC 呈现为 ModalView,这在语义上也很有意义。

    是的,可以检测选择了哪个选项卡,但使用UITabBarController 的selectedViewController 属性更容易。

    UIViewController *curVC = myTabBarController.selectedViewController;
    if([curVC isKindOfClass:UINavigationController.class])
    {
        UINavigationController *nav = (UINavigationController*)curVC;
        [nav push...];
    }
    else
    {
        // do sth else: go to webpage for instance
    }
    

    【讨论】:

      【解决方案2】:

      拥有标签栏控制器的人都可以做

      [myTabBarController selectedIndex];
      

      或

      [myTabBarController selectedViewController];
      

      第一个返回所选项目的索引,第二个返回实际的视图控制器,第一个可能会更好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多