在iOS 7中被忽略时隐藏底部条形图

在iOS 7中被忽略时隐藏底部条形图,ios,uinavigationcontroller,uitabbarcontroller,ios7,Ios,Uinavigationcontroller,Uitabbarcontroller,Ios7,这段代码在iOS 7发布之前一直运行良好。我正在分配一个UIViewController,当按下hidesbottombars时,它将作为UINavigationController的rootViewController。但无论如何,选项卡栏都会显示出来。以下是相关代码: Login *lv = [[Login alloc] init]; lv.HowToUseShows = showHowToUse; lv.hidesBottomBarWhenPushed = YES; UINavigati

这段代码在iOS 7发布之前一直运行良好。我正在分配一个
UIViewController
,当按下
hidesbottombars
时,它将
作为
UINavigationController
rootViewController
。但无论如何,选项卡栏都会显示出来。以下是相关代码:

Login *lv = [[Login alloc] init];
lv.HowToUseShows = showHowToUse;
lv.hidesBottomBarWhenPushed = YES;

UINavigationController *BokShelfNav = [[UINavigationController alloc] initWithRootViewController:lv];

//... 

UITabBarController *tbController = [[UITabBarController alloc] init];
tbController.viewControllers = @[BokShelfNav,...];

有人有类似问题吗?

我发现唯一的解决办法是让tabBarController在另一个选项卡中启动(
[tbController setSelectedIndex:1];
),然后,在
视图中出现:
该选项卡的方法ViewController do
[tbController setSelectedIndex:0]

我在push语句之后设置了setSelectedIndex,它工作了

//created tabbar controller object

if(index==0)
    [tabbarcontroller setSelectedIndex:1];

[self.navigationcontroller pushViewcontroller:tabbarcontroller anmated:YES];
[tabbarcontroller setSelectedIndex:index];

唯一的问题是,如果在第0个索引处显示控制器,它将显示。在本例中,我首先将mt tabbarcontroller的索引设置为1(不同于0)。我发现调用方法和设置属性的顺序对是否显示选项卡栏有影响


如果我将
self.hidesBottomBarWhenPushed=YES
在我按下的视图控制器的
viewDidLoad
方法中,选项卡栏仍然显示。如果我将其移动到
init
方法,选项卡栏将隐藏,就像在iOS 6上一样。

您将HideBottomBarWhenPush设置为YES。这意味着在显示此视图时隐藏选项卡栏。如果您希望选项卡栏出现在那里,请尝试删除这行代码
lv.hidesBottomBarWhenPushed=YES
。抱歉@Priyatham51我想我说得不够清楚,问题是酒吧正在显示,我想把它隐藏起来。是的,我的现有代码也面临着同样的问题。@Piyushirpara很高兴知道我不是唯一一个,到目前为止有什么办法可以解决它吗?是的。也许它也会对我有用,我还注意到,如果您在带有tab bar的屏幕中,并按到下一个屏幕,当您返回到屏幕时,tab bar被隐藏。是的,这也应该有效,可能两个答案都是正确的,因此我将票给您;)。你能详细说明一下你是怎么做到的吗?我有一个自定义的UITabBar,选择另一个选项卡,然后返回对我来说不起作用…这似乎是一个更好的解决方法。将票证重新分配给您。如果实际调用了init函数,这很好,但是对于由情节提要创建的我的UITableViewController,不会调用init函数。
-initWithCoder:
将代替接口生成器对象的
-init
调用。几乎三年后,这对我有所帮助。把它放在初始化器中。官方文档应该注意这种行为。