1

Это может быть небольшая проблема, но я не понимаю, где & что не так. Когда я запускаю симулятор с iPhone 4s до 6+, он работает нормально.UINavigation bar, исчезающий в iPhone 4 (iOS 7.1.2)

enter image description here

Но когда я бегу на 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) Я вступающий в этот экран с помощью шоу 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; 

Облицовочные же вопрос.

+0

Какова ваша цель развертывания iOS? – SanitLee

+0

И одно, что вы можете проверить сейчас, - это полупрозрачное свойство. Поскольку в iOS7 все значение свойства полупрозрачного контроллера равно YES, попробуйте установить прозрачное свойство навигационной панели в НЕТ и посмотреть, сможет ли это решить вашу проблему. – SanitLee

+1

моя цель развертывания - 7,0, и я попытался добавить self.navigationController.navigationBar.translucent = NO; в viewDidLoad, viewDidAppear. Все еще не работает. –

ответ

1

Проведя еще некоторое время, я получил решение enter image description here

Всякий раз, когда есть шоу переход от одного к другому VC, как и выше. Затем UINavigation штрих-код

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
// Override point for customization after application launch. 
[[UINavigationBar appearance]setBarTintColor:[UIColor redColor]]; 
} 

не работает для прошивки 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]; 
} 

Затем он работал для меня & панели навигации показывает для прошивки 7.1. :)