2015-08-26 3 views
3

У меня есть следующий код, который отлично работает на прошивке 8:Как изменить общий цвет оттенков на iOS 9?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 

    // some app initialization code comes here 
    // ... 

    // set the global tint color - works great on iOS 8! 
    [[UIView appearance] setTintColor:[self myGlobalTintColor]]; 
} 

Однако, когда я запускаю тот же код на прошивке 9 беты 5 (XCode 7, бета-6) следующий появляется при UIActionSheet (или UIAlertController) : enter image description here

Как вы можете видеть, кнопка «Отмена» не принимает глобальный цвет оттенков. Это известная проблема с iOS 9, или мне не хватает кода?

+1

Возможно, это связано с тем, что 'UIActionSheet' устарел с iOS 8.3. Из документов: 'UIActionSheet устарел. Используйте UIAlertController с предпочтительнымStyle из UIAlertControllerStyleActionSheet вместо ' – sbarow

+0

Спасибо за отзыв. Я просто пытался использовать UIAlertController вместо UIActionSheet, но это не исправить проблему. Любые другие предложения? – Joshua

+1

Посмотрите на это http://stackoverflow.com/a/26222502/1186243 Обратите внимание на последний комментарий. – sbarow

ответ

2

В iOS 9.0 кажется, что только изменение оттенка окна помогает ничем другому работать, включая появлениеWhenContainedIn: трюк.

1

При использовании UIAlertController для ActionSheet, не забудьте установить цвет оттенка после представления контроллера предупреждения.

activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: appActivities) 
presentViewController(activityVC!, animated: true, completion: nil) 
activityVC?.view.tintColor = UIColor.snapdealBlueColor()