uitabbarcontroller 故事板:连接已经连接到另一个 uitabbarctrl 的视图控制器 [英] uitabbarcontroller storyboard: connecting viewcontroller that's already connected to another 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屋!