gpt4 book ai didi

ios - 没有 UINavigationController 的 UINavigationBar

转载 作者:技术小花猫 更新时间:2023-10-29 10:59:15 29 4
gpt4 key购买 nike

我想在我的应用程序顶部有一个 UINavigationBar,就像在手机应用程序中一样,但我不想将它与 UINavigationController 一起使用>,也就是说,我想把它作为一个“独立”的对象来使用。

将具有 UINavigationBar 的 View Controller 在 .xib 文件中有其 View 。我尝试从 Object Library 中拖动一个 UINavigationBar 的实例,它工作正常,但应用程序的状态栏仍然是白色的,而 UINavigationBar 是灰色的。我希望状态栏具有相同的灰色调,但不希望 View 的其余部分具有相同的灰色调。

为了向您展示我的意思,我有两张图片。第一个是电话应用程序。请注意,状态栏和导航栏是灰色的,但背景是白色的。

iPhone Phone App

下图来 self 的应用,你可以看到状态栏是白色的(我也希望它是灰色的)。

My iPhone app

我还尝试在 View Controller 中使用以下代码。

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

我在使用和不使用 UINavigationBar 的情况下都进行了尝试,但要么没有显示导航栏,要么看起来和以前一样。

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

最佳答案

您可以实现 UINavigationBarDelegate 协议(protocol)的委托(delegate)方法 -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 - 没有 UINavigationController 的 UINavigationBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23107231/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com