uitabbarcontroller storyboard:连接已经连接到另一个uitabbarctrl的viewcontroller

时间:2011-12-23 21:05:19

标签: ios uitabbarcontroller storyboard

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

你可以在故事板中重复使用'viewcontrollers吗?或者你必须创建新的viewcontrollers? 我认为前者是有效的,因为我能够通过选择“推送”来实现故事板中的其他位置。 如果我选择“关系”,它就不会使用uitabbar。

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

获取uitabbar中viewcontrollers的引用
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不是那个类(即使故事板显示它是)。

在原始标签栏控制器上使用此代码

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。一旦我这样做,我的viewcontroller就会从循环中消失。

2 个答案:

答案 0 :(得分:0)

这绝对是可能的。您确定正在建立的连接是否为视图?

我道歉;目前还不清楚。当您按住控件并拖动蓝色连接线时,请确保连接到视图本身(而不是其他任何内容)。

您应该能够在UITabBarController和视图之间创建该关系,即使它正由另一个UITabBarController共享。

当您尝试时,它会向您显示哪些选项?

答案 1 :(得分:0)

确定。它有可能做(可能)事实我正在做UITabbar-> navcontroller-> uitableview

当我添加第二个tabbar并创建它自己的navcontroller并连接它时。然后通过从navcontroller连接到tableview'重用'原始tableview。这似乎并没有弄乱原来的标签栏。

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