1

UIAppearance를 사용하여 내 Apps 스타일을 구성하려고합니다. 그것은 UIView 또는 UIButton과 같은 UI 구성 요소와 완벽하게 작동하지만 UIViewController에서는 그렇지 않습니다. 나는 다음과 같이하고 싶다 :UIAppearance를 사용하여 ViewController의 backgroundColor를 설정하는 방법

let appearance = FirstViewController.appearance() 

ViewControllers에 UIAppearance를 사용할 수있는 방법이 있습니까?

+0

당신은 단지 추측 컨트롤러보기가 필요할 수 있습니다. –

+0

'UIViewController'에는'appearnace()가 없습니다. –

+0

UIViewcontroller는 UIAppearnce 클래스를 확장하지 않으므로 사용할 수 없습니다. UIView는 UIAppearnce 클래스를 확장합니다. – Hiren

답변

2

viewController에 배경색을 설정하지 않았 으면 viewControllersview에 설정하십시오. UIView.appearance().backgroundColor을 사용하면 모든보기의 배경이 바뀝니다.

질문에 대한 대답이 없으므로 UIAppearance을 사용하여 viewControllers 배경색을 변경할 수 없습니다.

class FirstViewController: UIViewController { 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     view.backgroundColor = .red 
    } 
} 

그런 다음 FirstViewControllerUIViewController을 변경하려면 스토리 보드에있는 관리자를 사용하여 :

은 당신이 할 수있는 것은 다음과 같다. 당신이 UIAppearance 프로토콜의 documentation에서 볼 수 있듯이

+2

보기 컨트롤러보기뿐만 아니라 모든보기에 영향을 미치지 않습니까? – rmaddy

+0

@rmaddy, 나는 충분히 명확하지 않았고, 그것이 명백하다고 생각했지만 지금은 대답을 분명히했습니다. 그것을 지적 주셔서 감사합니다. –

+0

@rmaddy 이것은 Storyboard inspector의 클래스가'FirstViewController' 나'FirstViewController'의 서브 클래스에 할당 된 View 컨트롤러에만 영향을 미칩니다. 사용법 중 하나는 기본 'UINavigationController'를 확장하고 배경을 흰색으로 설정하는 것입니다. 오른쪽 상단 모서리에 어두운 회색 색상의 플래시가 표시되지 않습니다. –

2

, 두 클래스는 따라서 UIViewController 클래스가 더 appearance() 기능이없는, 기본, UIViewUIBarItem하여 채택한다.

당신은 어느 프로토콜의 필요한 방법을 구현하여 UIViewController을 확장 할 수 있습니다, 또는 아마도 더욱 쉽게 해결책은 클래스 view.backgroundColor 속성에 대한 기본 색상을 제공 자신의 UIViewController 서브 클래스를 생성하는 것입니다 귀하의 모든 ViewControllers이 상속하게 이 클래스 대신 UIViewController을 직접 입력하십시오.