uitabbarcontroller 故事板:连接已经连接到另一个 uitabbarctrl 的视图控制器 [英] uitabbarcontroller storyboard: connecting viewcontroller that's already connected to another uitabbarctrl

查看:38
本文介绍了uitabbarcontroller 故事板:连接已经连接到另一个 uitabbarctrl 的视图控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在我的故事板中重复使用我的一些视图.我从 uitabbarcontroller 开始,并为每个选项卡连接了一些视图.现在我将一个新的 uitabbarcontroller 放入故事板中,我想将其中一个选项卡连接到连接到原始选项卡栏的 SAME 视图控制器.

I'm trying to reuse some of my view in my storyboard. I start with a uitabbarcontroller and have some views connected for each tab. Now i dropped a NEW uitabbarcontroller into the storyboard and I want to connect one of it's tabs to the SAME viewcontroller that is connected to the original tabbar.

你能像那样在故事板中重用"视图控制器吗?或者你必须创建新的视图控制器?我假设前者有效,因为我可以通过选择推"在故事板中的其他地方进行.如果我选择关系",它就不能与 uitabbar 一起使用.

Can you 'reuse' viewcontrollers in the storyboard like that? Or do you have to create new viewcontrollers? I assume the former works, as I'm able to do it else where in the storyboard by choosing 'push'. It's just not working with the uitabbar if I choose 'relationship'.

好的.我找到了崩溃的原因,我想我知道发生了什么.看来,如果我连接另一个 uitabbarcontroller,那么第一个标签栏上的视图索引就会被搞砸.我正在做什么来使用

ok. I found the cause of my crash and I think I know what's going on. It appears that if I connect another uitabbarcontroller, then indices for the views on the first tabbar get screwed up. What I'm doing to getting references to the viewcontrollers in the uitabbar using

UINavigationController* ar_nav=[self.viewControllers objectAtIndex:1];
_artvc = [ar_nav.viewControllers objectAtIndex:0];
if (![_artvc isKindOfClass:[ArtistTableViewController class]])
{
    TGLog(@"ERR wrong class! %@", [_artvc class]);
    exit(0);
}

一旦我连接第二个 uitabbar,结果索引 1 不是那个类(即使故事板显示它是).

As soon as I connect the second uitabbar Turns out that index 1 isn't that class (even though the storyboard shows that it is).

在我原来的标签栏控制器上使用这个代码

using this code on my original tabbar controller

UINavigationController* n;
for (n in self.viewControllers)
{
    UIViewController* vc=[n.viewControllers objectAtIndex:0];
    TGLog(@"%@", [vc class]);
    if ([vc isKindOfClass:[ArtistTableViewController class]])
    {
        _artvc = (ArtistTableViewController*)vc;
    }
    if ([vc isKindOfClass:[SongsTableViewController class]])
    {
        _stvc = (SongsTableViewController*)vc;
    }
    if ([vc isKindOfClass:[AlbumTableViewController class]])
    {
        _altvc = (AlbumTableViewController*)vc;
    }

}

工作正常,直到我连接第二个 uitabbar.一旦我这样做了,我的视图控制器就从循环中消失了.

works fine until I connect the second uitabbar. Once I do that, my viewcontroller is gone from the loop.

推荐答案

ok.它(可能)与我正在做 UITabbar->navcontroller->uitableview

ok. it has something to do (possibly) with the fact that I'm doing UITabbar->navcontroller->uitableview

当我添加我的第二个标签栏并创建它自己的导航控制器并连接它时.然后通过从导航控制器连接到 tableview 来重用"原始 tableview.这似乎并没有搞砸原来的标签栏.

When I add my second tabbar and create it's own navcontroller and connect it. Then 'reuse' the original tableview by connecting from the navcontroller to the tableview. THis doesn't seem to screw up the original tabbar.

这是我的故事板的屏幕截图http://www.thumbgenius.dynalias.com/tabbar_vc_reuse.png

here's a screenshot of my storyboard http://www.thumbgenius.dynalias.com/tabbar_vc_reuse.png

这篇关于uitabbarcontroller 故事板:连接已经连接到另一个 uitabbarctrl 的视图控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆