我有一个带有动态添加标签的TabBar控制器。添加标签很简单 - 我只需获取[self viewControllers]
数组,添加一个新的View Controller,并使用[self setViewControllers]
更新TabBar。现在,我希望能够在添加的视图控制器之一中按下按钮将其从TabBar中删除。如何关闭控制器内部的TabBar控制器?
我可以在添加的视图控制器中将self
与[[self tabBarController] viewControllers]
数组进行比较,以找到要删除的匹配项?
我无法使用标签的标题,因为可能有重复。我尝试将self
与项目进行比较,但实际上它是[self parentViewController]
。我无法使用parentViewController
,因为在“更多”菜单中打开视图时,parentViewController
是“更多”视图控制器。我不知道有什么方法可以在视图的直接父级中访问信息,包括tag
。
任何提示将是伟大的,并提前感谢!
作为一个例子,这里是我目前的代码。它可以工作,但当选项卡位于“更多”菜单中时不会。当TabBar中View Controller中的按钮被按下时,这个按钮被运行:
NSMutableArray *temp = [[NSMutableArray alloc] initWithArray:[[self tabBarController] viewControllers]];
for (int i = 0; i < [temp count]; i++)
{
UIViewController *test = [temp objectAtIndex:i];
if (test == [self parentViewController])
{
[temp removeObject:test];
break;
}
}
[[self tabBarController] setViewControllers:temp];