簡體   English   中英

IOS 大標題 - 在啟動新活動時捕捉

[英]IOS Large Title - Snapping upon launching new activity

我的應用程序中有一個問題,即在 View1 上設置了 LargeTitle,但是當我啟動 View2 時,標題又變小了。 因此,當在 View2 上按下后退按鈕時,View1 啟動時 LargeTitle 從小到大對齊。

我用來創建 LargeTitle 的代碼是 ViewWillAppear 中的“navigationItem.largeTitleDisplayMode =.always”。

視圖1 -

'覆蓋函數viewWillAppear(_動畫:布爾){ 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 -

'覆蓋函數viewWillAppear(_動畫:布爾){ 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(animated)

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

    self.navigationController?.navigationBar.isTranslucent = true;

}'

這是我使用的與兩個視圖的標題文本相關聯的代碼。 storyboard 嵌套在 NavigationController 中,所以這可能與它有關。

注意 - 我沒有通過 Storyboard 設置 LargeTitle,但是這樣做並不能解決問題。

這是該問題的視頻片段。

捕捉大標題:-

在此處輸入圖像描述

我認為問題是您需要在第二個視圖中恢復 navigationItem.largeTitleDisplayMode =.always' 當它即將消失時

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

       navigationItem.largeTitleDisplayMode = .always'
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM