0

我的应用程序使用下面的这一行来更改所有按钮以使用这种特定颜色。它还将我的 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 浏览器中看到应用程序的颜色为橙色,并且在下方看起来不太好。

在此处输入图像描述

4

1 回答 1

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
于 2016-02-20T14:44:57.763 回答