2016-08-17 8 views
1

Если в продлении действия изменить цвет панели навигации следующим образом:Как применить цвет панели навигации к строке состояния в расширении?

class ActionViewController: UIViewController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     UINavigationBar.appearance().barTintColor = UIColor.green 

Тогда результат выглядит следующим образом, с строке состояния в белом:

enter image description here

Но если одна и та же строка (UINavigationBar.appearance().barTintColor) применяется к приложению (в отличие от расширения), тогда результат отличается, например, если в проект шаблона основной детали XCode добавлена ​​следующая строка:

class MasterViewController: UITableViewController { 
    override func viewDidLoad() { 
     UINavigationBar.appearance().barTintColor = UIColor.green 

Тогда это результат с строке состояния также зеленый:

enter image description here

Как я могу получить в строке состояния появится зеленый в расширении действия?

+0

[попробовать это] (http://stackoverflow.com/a/34658477/1378447), дайте нам знать результат. –

ответ

1

Это потому, что по умолчанию ActionViewController использовать UINavigationBar без UINavigationController.If вы проверяете раскадровку из ActionViewController, вы можете увидеть UINavigationBar 20 очков меньше, чем тогда, когда он используется в UINavigationController.

Вид за статусомBar - это rootView, а не NavigationBar.

Решение:

1.Change ваша структура ViewController включить UINavigationController.

2.Add в statusBarBackgroundview ниже статусной, и изменить его цвет:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    [UINavigationBar appearance].barTintColor = [UIColor greenColor]; 

    UIView* statusBarBackgroundView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 20)]; 
    statusBarBackgroundView.backgroundColor = [UIColor greenColor]; 

    [self.view insertSubview:statusBarBackgroundView atIndex:0]; 
} 
+0

Спасибо, SO не дадут мне награду за награду, я сделаю это, когда это произойдет. – Gruntcakes

Смежные вопросы