我的应用程序使用下面的这一行来更改所有按钮以使用此特定颜色。它还会使我的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浏览器中看到应用程序的颜色为橙色,下面看起来不太好。
答案 0 :(得分: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