I'm making an iOS app for iPhone, and I'm using a navigation controller. At some point during the navigation, I'm adding a UISegmentedControl
to a view controller, just under the navigation bar from the navigation controller. I'm inserting new background and shadow images in the navigation bar, to make the UISegmentedControl
appear as part of the navigation bar. I do it like this:
// nav bar color image
let rect = CGRectMake(0, 0, view.frame.width, 0.5) // Used in navBar, size dosn't matter
UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)
barBackgroundColor.setFill()
UIRectFill(rect)
let navBarBackground = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
// setup navbar
navigationController!.navigationBar.setBackgroundImage(navBarBackground, forBarMetrics: .Default)
navigationController!.navigationBar.shadowImage = UIImage()
navigationController!.navigationBar.tintColor = UIColor.blackColor()
navigationController!.navigationBar.translucent = false
When I navigate away from that given view controller, the navigation bars background is still changed.
How can I restore the navigation bars appearance?
Or...
Is there another way embed the UISegmentedControl
into an expanded navigation bar?
Image of navigation bar with custom background and Segmented Control below:
When navigating back, the navigation bar cuntinues to be custom:
EDIT:
In a view controller before i change the background images, i try to safe the standart image:
override func viewDidAppear(animated: Bool) {
if sharedVariables.standartNavBarBackgroundImage == nil {
let herp = navigationController!.navigationBar.backgroundImageForBarMetrics(.Default)
sharedVariables.standartNavBarBackgroundImage = herp
let derp = navigationController!.navigationBar.shadowImage
sharedVariables.standartNavBarShadowImage = derp
}
}
Both herp
and derp
are nil
after being set, dispite the navigationbar is visible at this momont. How come?
Click the Collapse Pane icon in the space between the Navigation Bar and the Main Window. The Navigation Bar is collapsed, and the Main Window is expanded horizontally across the entire screen. 2. To restore the Navigation Bar to its original width, click the Restore Pane icon on the left side of the window.
How to remove opacity or transparency from sticky navigation/menu bar. If you want to remove the opacity or transparency from the sticky navigation bar, just navigate to Theme Options -> General -> Additional CSS and copy/paste this code and save changes.
A user changes the navigation bar's style, or UIBarStyle , by tapping the “Style” button to the left of the main page. This button opens an action sheet where users can change the background's appearance to default, black-opaque, or black- translucent.
You should be able to get the default appearance back just by setting the background image and shadow image to nil
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With