Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save heinrisch/20cbb7a28ccb39cb796a9171a5d6a56d to your computer and use it in GitHub Desktop.
Save heinrisch/20cbb7a28ccb39cb796a9171a5d6a56d to your computer and use it in GitHub Desktop.
Change statusbar background color iOS
import Foundation
extension UINavigationController {
public override class func initialize() {
struct Static {
static var token: dispatch_once_t = 0
}
if self !== UINavigationController.self {
return
}
dispatch_once(&Static.token) {
let originalSelector = #selector(self.viewDidLoad)
let swizzledSelector = #selector(self.viewDidLoadWithColoredStatusbar)
let originalMethod = class_getInstanceMethod(self, originalSelector)
let swizzledMethod = class_getInstanceMethod(self, swizzledSelector)
let didAddMethod = class_addMethod(self, originalSelector, method_getImplementation(swizzledMethod), method_getTypeEncoding(swizzledMethod))
if didAddMethod {
class_replaceMethod(self, swizzledSelector, method_getImplementation(originalMethod), method_getTypeEncoding(originalMethod))
} else {
method_exchangeImplementations(originalMethod, swizzledMethod)
}
}
}
func viewDidLoadWithColoredStatusbar() {
self.viewDidLoadWithColoredStatusbar()
let backgroundView = UIView.init(frame: UIApplication.sharedApplication().statusBarFrame)
backgroundView.backgroundColor = UIColor.blackColor()
self.view.addSubview(backgroundView)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment