2014-07-11 107 views
2

使用UIAppearance時,是否可以只定位視圖控制器的根視圖?我想爲我的應用程序委託中的所有控制器設置setBackgroundColor,但只想定位視圖控制器上的直接視圖。謝謝。爲視圖控制器根視圖設置外觀代理

詳細說明,每個UIViewController子類都有自己的UIView對象,您可以通過它的視圖屬性調用它。這就是你在故事板上放置諸如UITableView,UITabBar等任何東西的視圖。我希望代理僅適用於該直接視圖,因爲UIKit中的所有內容幾乎都是UIView的子類。

這樣做的目的是集中控制我的視圖控制器外觀。發生在我身上的可能是我應該只使用UIViewController的子類,但是我想還有另一個地方可以做我剛剛描述的內容。

+0

u能請詳細說明這一點(但要定位僅在直接觀看視圖控制器。)? –

+0

嘗試使用方法:'+(instancetype)appearanceWhenContainedIn:(Class )ContainerClass,...'。所有內容都在[UIApperance Protocol Reference](https://developer.apple.com/library/ios/documentation/uikit/reference/UIAppearance_Protocol/Reference/Reference.html)中有描述 –

+0

已經說過所有東西都是UIView的子類。你不是通過調用該方法來定位根視圖,這就是我的問題所在。謝謝。 – believesInSanta

回答

0

不幸的是,您無法使用外觀代理來完成此操作。然而,一個解決方案,如果您使用的是迅速和故事板或筆尖加載你的視圖控制器是擴展的UIViewController並覆蓋awakeFromNib像這樣:

extension UIViewController { 

    open override func awakeFromNib() { 
     super.awakeFromNib() 

     view.backgroundColor = UIColor.blue 
    } 
} 
相關問題