使用全局应用程序颜色的SFSafariViewController背景按钮颜色

时间:2016-02-20 03:35:55

标签: objective-c 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

1 个答案:

答案 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