ios – UINavigationBar没有UINavigationController

前端之家收集整理的这篇文章主要介绍了ios – UINavigationBar没有UINavigationController前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在我的应用程序的顶部有一个UINavigationBar,就像在手机应用程序中,但我不想使用它与UINavigationController,也就是我想使用它作为一个“独立”对象.

具有UINavigationBar的视图控制器具有.xib文件中的视图.我试图从对象库拖动一个UINavigationBar的实例,它的工作正常,但是应用程序的状态栏仍然是白色的,而UINavigationBar是灰色的.我想要状态栏具有相同的灰色调,但不是其余的视图.

告诉你我的意思,我有两张照片.第一个是手机应用程序.请注意,状态栏和导航栏为灰色,但背景为白色.

以下图片来自我的应用程序,因为您可以看到状态栏是白色的(我也希望它是灰色的).

我也试图在视图控制器中使用以下代码.

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.navigationItem.title = @"Köp ProViva";
}

我尝试过它有无UINavigationBar,但是没有导航栏显示,或者看起来和以前一样.

如何添加一个UINavigationBar并且状态栏具有相同的颜色?

解决方法

您可以实现UINavigationBarDelegate协议的委托方法-positionForBar:简单地返回UIBarPositionTopAttached.

例:

-(UIBarPosition)positionForBar:(id<UIBarPositioning>)bar
{
    return UIBarPositionTopAttached;
}
//if you're not using a `UINavigationController` and instead
//simply want a `UINavigationBar` then use the following method as well
-(void)testMethod
{
    UINavigationBar *navBar = [[UINavigationBar alloc] init];
    [navBar setFrame:CGRectMake(0,20,self.view.frame.size.width,44)];
    [navBar setBarTintColor:[UIColor lightGrayColor]];
    [navBar setDelegate:self];
    [self.view addSubview:navBar];
}

希望这可以帮助.

猜你在找的iOS相关文章