当前位置:  开发笔记 > 后端 > 正文

恢复默认导航栏外观

如何解决《恢复默认导航栏外观》经验,为你挑选了1个好方法。

我正在为iPhone制作iOS应用程序,而我正在使用导航控制器.在导航过程中的某个时刻,我正在向UISegmentedControl导航控制器的导航栏下添加一个视图控制器.我在导航栏中插入新的背景和阴影图像,使其UISegmentedControl显示为导航栏的一部分.我是这样做的:

    // 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

当我离开给定的视图控制器时,导航栏背景仍然会改变.

如何恢复导航栏的外观?

要么...

是否有另一种方法嵌入UISegmentedControl扩展的导航栏?

带有自定义背景和分段控制的导航栏图片如下: 导航栏具有自定义背景. 加上下面的段控制

导航栏时,导航栏可以自定义: 在此输入图像描述

编辑:

在更改背景图像之前的视图控制器中,我尝试保护标准图像:

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
    }
}

双方herpderpnil被设置后,dispite的导航栏在这momont可见.怎么会?



1> Noah Withers..:

只需将背景图像和阴影图像设置为,就可以恢复默认外观nil.

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有