2017-05-17 121 views
0

我在init()之後設置了titleViewUIViewControllernavigationItem。在將VC推到UINavigationController之後,titleView在第一時間顯示正確。但是當我更改(重新設置)titleView到另一個視圖時,它突然消失。設置UINavigationItem的titleView會讓titleView消失

但是,當我推動另一個視圖控制器並導航回來,它突然出現。 重新設置titleView之後,我必須執行任何操作嗎?

+1

嘗試更改/將其放置在'viewDidAppear'中的邏輯 – Honey

+1

當你說「在init()之後」時,你究竟在哪裏設置標題?你能告訴我們一些代碼嗎? – TheAppMentor

回答

-2

我想你也許這樣的代碼:
self.navigationItem.titleView = self.yourView;
如果您yourView是一個自定義的類,它也許從上海華當您打開視圖 - 控制到下一個刪除;
所以這樣的代碼也許解決您的問題:如果你不使用標籤欄控制器,然後在viewDidLoad中 設置標題爲self.title
[self.navigationItem.titleView addSubview:yourView];

+0

這無關天氣您的標題視圖是否是自定義視圖。 'UINavigationItem'的titleVew是一個強大的屬性。只要保持導航項目,它將保持標題視圖。此外'titleView'是'nil'如果你不設置它。因此,你最後的聲明什麼都不會做。 – clemens

+0

是的,但如果它是一個自定義視圖,他可能重寫func removeFromSuperView,使用addSubview在這個時候更好;而當你在stroyboard上設置titleview時,它也是titleView的子視圖; titleView需要init是對的,我想我們都知道它。 – Kira

+0

問題是「在重新設置titleView後我必須執行任何操作嗎?」,並且我只是給他一個更好的選擇以避免問題,我是否在任何地方都錯了?請告訴我 :) – Kira

-1

是better.I提到標籤欄控制器,因爲如果你在UITabBarController中有一個視圖控制器(在一個NavigationController中),那麼如果你設置self.title它將覆蓋標籤的名字以及頂部標題。

相關問題