微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IOS 大标题 - 启动新活动时捕捉

如何解决IOS 大标题 - 启动新活动时捕捉

我在我的应用程序中遇到了一个问题,其中在 View1 上设置了一个标题,但是当我启动 View2 时,标题会弹回小标题。因此,当在 View2 上按下后退按钮时,View1 将启动,LargeTitle 从小到大对齐。

我用来创建 LargeTitle 的代码是“navigationItem.largeTitledisplayMode = .always”,它位于 ViewWillAppear 中。

视图 1 -

'override func viewWillAppear(_animated: Bool) { super.viewWillAppear(动画)

        navigationItem.largeTitledisplayMode = .always

if #available(iOS 12.0,*) {
           
            self.navigationController?.navigationBar.barTintColor = UIColor(named: "#222222")
               
            self.navigationController?.navigationBar.isTranslucent = true;

            self.navigationController?.navigationBar.tintColor = UIColor.white
                
            navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.white]
            
        }

'

视图 2 -

'override func viewWillAppear(_animated: Bool) { super.viewWillAppear(动画)

    self.navigationController?.setToolbarHidden(true,animated: false)
    
    navigationController?.navigationBar.prefersLargeTitles = false

    if #available(iOS 13.0,*) {
        UIApplication.shared.statusBarStyle = .darkContent
    } 
    
    if #available(iOS 12.0,*) {
        self.navigationController?.navigationBar.barTintColor = UIColor.white
            self.navigationController?.navigationBar.isTranslucent = false;
            self.navigationController?.navigationBar.tintColor = UIColor.black
            navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.black]

    }
    
    self.navigationItem.titleView = setTitle(title: name,titleColor: UIColor.black,titleSize: 14,subtitle: category,subtitleColor: UIColor.gray,subtitleSize: 12,view: self.view)'

' 覆盖 func viewWilldisappear(_animated: Bool) { super.viewWilldisappear(动画)

    navigationController?.navigationBar.prefersLargeTitles = true
    
    navigationController?.navigationItem.largeTitledisplayMode = .always
    
    UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent

    self.navigationController?.navigationBar.isTranslucent = true;

}'

这是我使用的与两个视图的标题文本相关联的代码。故事板嵌套在 NavigationController 中,因此这可能与它有关。

注意 - 我没有通过 Storyboard 设置 LargeTitle,但是这样做并不能解决问题。

这是问题的视频片段。 :

捕捉大标题:-

enter image description here

解决方法

我认为问题是当它即将消失时,你需要在第二个视图中恢复 navigationItem.largeTitleDisplayMode = .always'

override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

       navigationItem.largeTitleDisplayMode = .always'
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?