簡體   English   中英

設置在Interface Builder中創建的導航欄的標題

[英]Set the title of Navigation Bar created in Interface Builder

我有一個模態視圖控制器,其視圖來自XIB。 我希望它具有與我的基於導航的應用程序的其余部分相同的外觀和感覺,但它不是一個被推送到導航堆棧的視圖,它以模態呈現。 我拖了一個UINavigationBar並將它作為一個插座,但它沒有要設置的title屬性。 我有兩個字段可以顯示這個模態視圖,我希望標題設置不同,具體取決於哪一個創建模態視圖。

UINavigationBar管理一堆UINavigationItem ,就像UINavigationController管理器一樣,是一堆UIViewController 要設置直接可見的內容,您應該使用pushNavigationItem:animated:setItems:animated:使用您希望條形圖反映的視圖控制器的navigationItem。

例如:

self.navigationItem.title = @"A custom title";
[self.navigationBar pushNavigationItem:self.navigationItem animated:NO];

上面的代碼中有一個屬性navigationBar ,它引用了獨立的導航欄。

如果你不想自己管理它,你可以做mplappert建議和巢您的視圖控制器(不含獨立UINavigationBar一個) UINavigationController和現在的導航控制器模態,而不是你的視圖控制器。

如果您已經在IB中定義了UINavigationBar,也會發現這種更簡單的方法。 假設self.navigationBar是你的IBOutlet:

self.navigationBar.topItem.title = title;

(使用XCode 4.5.2)找到一種直接在Interface Builder中工作的方法 - 無需設置代碼。

在(IB)中選擇ViewController對象后,Identity Inspector下有一個標記為“ 用戶定義的運行時屬性 ”的部分。 我添加了String類型的keyPath“title”並將其設置為我想要的值。

經過測試,當按下Nav控制器堆棧並以模態方式打開時(當然使用Modal Nav Controller)可以正常工作。

在創建導航項的iboutlet中的viewcontroller.h文件

     @property (weak, nonatomic) IBOutlet UINavigationItem *navigationBarTitle;

- 將其命名為“navigationBarTitle”

在viewcontroller.m文件中添加super viewDidLoad中的代碼

      self.navigationBarTitle.title = @"Favorites";

將導航欄項目中的storybord連接到navigationBarTitle。

在我的.h文件中

  • 將導航項的子項從故事板拖動到.h文件中

  • 將其命名為“navigationBarTitle”

在我的.m文件中

  • 添加了self.navigationBarTitle.title = @“Some Title”;

這是最簡單的方法:

[[[self.navigationController navigationBar] topItem] setTitle:@"The Title"];

您可以使用現有導航欄和以下代碼

self.navigationController?.navigationBar.topItem?.title = "Calender"

只需將您的UIViewController放入一個新的UINavigationController視圖控制器堆棧中,然后以模態方式顯示該導航控制器。

暫無
暫無

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

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