Objective c UINavigationBar不隐藏在iPad中,而是隐藏在iPhone中
大家好,我正在制作一个通用应用程序,Objective c UINavigationBar不隐藏在iPad中,而是隐藏在iPhone中,objective-c,xcode,ios6,uinavigationbar,xcode4.5,Objective C,Xcode,Ios6,Uinavigationbar,Xcode4.5,大家好,我正在制作一个通用应用程序,UINavigationBar在iPad上的行为对于ViewController类不起作用。我在谷歌上搜索了很多次,也尝试了很多解决方案,但对我不起作用。UINavigationBar的setHidden属性在iPad上不起作用,但在iPad上运行良好iPhoneUINavigationBarnothide in iPad我使用以下方法使其隐藏,但所有这些方法在iPad中都失败了,但在iPhone中仍然有效:- [self.navigationControll
UINavigationBar
在iPad
上的行为对于ViewController
类不起作用。我在谷歌上搜索了很多次,也尝试了很多解决方案,但对我不起作用。UINavigationBar
的setHidden
属性在iPad上不起作用,但在iPad上运行良好iPhoneUINavigationBar
nothide in iPad我使用以下方法使其隐藏,但所有这些方法在iPad中都失败了,但在iPhone中仍然有效:-
[self.navigationController setNavigationBarHidden:YES animated:YES];
及
self.navigationController.navigationBarHidden = YES;
当我从第一个viewController
转到第二个viewController
时,还有一点,当我从第二个viewController
弹出时,它转到不同的viewController
类,而不是第一个viewController
类
首先,你确定你起诉的是UINavigationController,而不是UISplitViewController(正如Shivan正确指出的那样)?另外,您确定正在从主踏板执行隐藏操作吗 无论如何,我发现了这个,它可能会帮助你
if( UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad )
{
CGRect rect = self.navigationController.navigationBar.frame;
rect.origin.y = rect.origin.y < 0 ?
rect.origin.y + rect.size.height
: rect.origin.y - rect.size.height;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.2];
self.navigationController.navigationBar.frame = rect;
[UIView commitAnimations];
}
else
{
[self.navigationController setNavigationBarHidden:shouldHide animated:YES];
}
if(UI\u USER\u INTERFACE\u IDIOM()==UIUserInterfaceIdiomPad)
{
CGRect rect=self.navigationController.navigationBar.frame;
rect.origin.y=rect.origin.y<0?
rect.origin.y+rect.size.height
:rect.origin.y-rect.size.height;
[UIView beginAnimations:nil上下文:NULL];
[UIView设置动画持续时间:0.2];
self.navigationController.navigationBar.frame=rect;
[UIView委员会];
}
其他的
{
[self.navigationController设置NavigationBarHidden:shoulHide动画:是];
}
默认情况下,通用应用程序模板对iPhone和iPad具有条件大小写。iPhone有UINavigationController
而iPad有UISplitViewController
@hpioscooder如果我得到了一个满意的解决方案,那么我接受。我不能接受假答案,因为它逻辑性不强,与问题没有任何关系。很抱歉我不能…@ShivanRaptor我使用的是UINavigationController而不是UISplitViewController!!!!检查你的方法,因为它可能是你调用它两次。你是对的,我在一个按钮上调用两个方法,这产生了问题…我自己设置了一个小测试,它工作了。您确定没有任何其他代码处理标题栏吗?您确定从正确的位置运行代码吗?是的,我在viewDidLoad方法中调用它。我的导航是HomeVwcntrllr-->1stviewCntrllr(导航栏问题)…尝试视图将出现:
方法隐藏导航栏这意味着您尝试在UIDABBARCONTROLLER上而不是在UINavigationControllerok上执行动画。我从代码中了解到的是(1)只需删除行[self.navigationController setNavigationBarHidden:YES];
从init方法(第一个方法)。(2)然后行[self.navigationController setNavigationBarHidden:YES动画:YES];
中的viewdiload
将其移到-(void)视图将显示:(BOOL)动画
方法:)