导航栏在 iPhone 4 (iOS 7.1.2) 中消失
UINavigation bar disappearing in iPhone 4 (iOS 7.1.2)
这可能是个小问题,但我不知道哪里出了问题。
当我在模拟器上 运行 从 iPhone 4s 到 6+ 它工作正常。
但是当我在 iPhone 4 (iOS 7.1.2) 上 运行 时,红色导航栏消失了。
这是我的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[UINavigationBar appearance]setBarTintColor:[UIColor redColor]];
}
了解更多详情
1) 我正在使用上一视图的 show segue 进入此屏幕。
2) 我在故事板中制作了这个屏幕。(我也检查了约束,但所有约束都是正确的)我没有在故事板中提供任何导航栏。我也没有通过编程隐藏控制器中的导航栏。
3) 我也试过了
// UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
// [navbar setBackgroundColor:[UIColor yellowColor]];
// [self.view addSubview:navbar];
在 viewDidLoad 和 viewDidAppear 中,但它不工作。
谁能帮帮我?
根据一些建议,我尝试在 viewDidLoad、viewDidAppear(部署目标为 7.1)中更新以下代码
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 55)];
[navbar setBackgroundColor:[UIColor yellowColor]];
self.navigationController.navigationBar.translucent = NO;
[self.view addSubview:navbar];
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 19, 20)];
[button addTarget:self action:@selector(didTapBackBtn:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:[UIImage imageNamed:@"arrow.png"] forState:UIControlStateNormal];
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.leftBarButtonItem = backBarButton;
面临同样的问题。
花了更多时间后,我得到了解决方案
每当有从一个 VC 到另一个的 Show segue 时,就像上面那样。然后UINavigation条码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[UINavigationBar appearance]setBarTintColor:[UIColor redColor]];
}
不适用于 iOS 7.1(在我的例子中,它发生在购买凭证第二个视图控制器上)。
所以我刚刚删除了 segue 并使用
浏览下一个屏幕
- (IBAction)didTapOnNext:(id)sender
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
BuyVaucherSecondViewController *bvs = [storyboard instantiateViewControllerWithIdentifier:@"buyVaucherSecond"];
[self.navigationController pushViewController:bvs animated:YES];
}
然后它对我有用并且导航栏显示 iOS 7.1。 :)
这可能是个小问题,但我不知道哪里出了问题。 当我在模拟器上 运行 从 iPhone 4s 到 6+ 它工作正常。
但是当我在 iPhone 4 (iOS 7.1.2) 上 运行 时,红色导航栏消失了。
这是我的代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[UINavigationBar appearance]setBarTintColor:[UIColor redColor]];
}
了解更多详情
1) 我正在使用上一视图的 show segue 进入此屏幕。
2) 我在故事板中制作了这个屏幕。(我也检查了约束,但所有约束都是正确的)我没有在故事板中提供任何导航栏。我也没有通过编程隐藏控制器中的导航栏。
3) 我也试过了
// UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 50)];
// [navbar setBackgroundColor:[UIColor yellowColor]];
// [self.view addSubview:navbar];
在 viewDidLoad 和 viewDidAppear 中,但它不工作。
谁能帮帮我?
根据一些建议,我尝试在 viewDidLoad、viewDidAppear(部署目标为 7.1)中更新以下代码
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
UINavigationBar *navbar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 55)];
[navbar setBackgroundColor:[UIColor yellowColor]];
self.navigationController.navigationBar.translucent = NO;
[self.view addSubview:navbar];
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 19, 20)];
[button addTarget:self action:@selector(didTapBackBtn:) forControlEvents:UIControlEventTouchUpInside];
[button setImage:[UIImage imageNamed:@"arrow.png"] forState:UIControlStateNormal];
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.leftBarButtonItem = backBarButton;
面临同样的问题。
花了更多时间后,我得到了解决方案
每当有从一个 VC 到另一个的 Show segue 时,就像上面那样。然后UINavigation条码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
[[UINavigationBar appearance]setBarTintColor:[UIColor redColor]];
}
不适用于 iOS 7.1(在我的例子中,它发生在购买凭证第二个视图控制器上)。
所以我刚刚删除了 segue 并使用
浏览下一个屏幕- (IBAction)didTapOnNext:(id)sender
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
BuyVaucherSecondViewController *bvs = [storyboard instantiateViewControllerWithIdentifier:@"buyVaucherSecond"];
[self.navigationController pushViewController:bvs animated:YES];
}
然后它对我有用并且导航栏显示 iOS 7.1。 :)