Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c UINavigationBar不隐藏在iPad中,而是隐藏在iPhone中_Objective C_Xcode_Ios6_Uinavigationbar_Xcode4.5 - Fatal编程技术网

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上运行良好iPhone
UINavigationBar
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)动画
方法:)