2016-02-20 2 views
0

Мое приложение использует эту строку ниже, чтобы изменить все кнопки, чтобы использовать этот определенный цвет. Он также превращает кнопки в моем SFSafariViewController того же цвета, что выглядит ужасно. Однако я не могу найти хороший способ исправить это. Единственный способ, которым я это сделал, - это код ниже, но после него есть проблема.Цвет кнопки кнопки SFSafariViewController с использованием глобальных цветов приложения

[[UIButton appearance] setBackgroundColor:[Helper getColor:self.application.color]]; 

работы из-за setBackgroundColor, но как только я закончу с браузером и вернуться в приложение все мои кнопки ясно.

[[UIButton appearance] setBackgroundColor:[UIColor clearColor]]; 
     SFSafariViewController *safariViewController = [[SFSafariViewController alloc]initWithURL:[NSURL URLWithString:self.message.filePath]]; 
     [self presentViewController:safariViewController animated:true completion:nil]; 

Это тоже не сработало.

[[UIButton appearanceWhenContainedIn:[SFSafariViewController class], nil] setBackgroundColor:[UIColor clearColor]]; 

Должен быть более простой способ сделать это. Вы можете видеть, что цвет приложения оранжевый и не выглядит хорошо в браузере Safari.

enter image description here

ответ

0

Похоже, единственный способ сделать это, чтобы создать пользовательский контроллер представления и следить за предыдущий цвет.

@implementation BrowserViewController 

@synthesize appColor; 

-(instancetype)initWithURL:(NSURL *)URL { 
    appColor = [[UIButton appearance] backgroundColor]; 
    [[UIButton appearance] setBackgroundColor:[UIColor clearColor]]; 
    return [super initWithURL: URL]; 

} 

- (void)viewWillDisappear:(BOOL)animated { 
    [[UIButton appearance] setBackgroundColor:appColor]; 
    [super viewWillDisappear:animated]; 
} 

- (void)viewDidUnload { 

    self.appColor = nil; 

    [super viewDidUnload]; 
} 



@end