推入导航堆栈不在导航控制器内

时间:2011-09-25 23:23:30

标签: iphone ios cocoa-touch

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

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

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

我只想覆盖广告一次。

编辑:

让我重新说一下,我可以从app委托和我的对象知道选择了哪个标签栏项目?如果我可以确定选择了哪个标签栏项目,我可以指向相应的导航控制器实例。

2 个答案:

答案 0 :(得分:0)

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

[myTabBarController selectedIndex];

[myTabBarController selectedViewController];

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

答案 1 :(得分:0)

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

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

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