2

我已經看過所有類似/相關的問題,但沒有一個是)正是我的問題或2)解決方案不起作用。簡單的標題不顯示在UINavigationController

在我appDelegate.m我在didFinishLaunchingWithOptions

JCGRootNavigationController *rnc = [[JCGRootNavigationController alloc] init]; 
self.window.rootViewController = rnc;` 

JCGRootNavigationController是UINavigationController的

的子類
@interface JCGRootNavigationController : UINavigationController` 

在JCGRootNavigationController.m:

@implementation JCGRootNavigationController 

-(instancetype) init { 
    self = [super init]; 
    self.view.backgroundColor = [UIColor lightGrayColor]; 
    self.navigationItem.title = @"MY TITLE";  
    return self; 
} 

而標題就是贏了不顯示。我看到導航欄,但沒有標題。看起來好像多年來很多人都有同樣的問題。也許一個簡單的答案將有助於消除所有的困惑。這非常令人沮喪。

+0

您需要設置,導航控制器顯示視圖控制器的title屬性。只有當您將JCGRootNavigationController放入另一個UINavigationController時,纔會顯示您正在設置的標題。 – CrimsonChris

+0

你嘗試過'self.title'嗎? – michaelsnowden

+0

我確實嘗試過'self.title',也沒有工作。 –

回答

6

UINavigationController自動顯示它顯示的UIViewController子類的標題。它通過查看該UIViewController或UIViewController子類的navigationItem.title屬性來實現。基本上UINavigationController沒有標題。

0

感謝believeInSanta,儘管我無法在任何地方的蘋果文檔中找到明確說明的這一點,但我必須以此爲答案。 UINavigationController沒有標題。

拿到冠軍來的工作,早在appDelegate.h我說:

JCGTableViewController *tvc = [[JCGTableViewController alloc] init]; 
JCGRootNavigationController *rnc = [[JCGRootNavigationController alloc] initWithRootViewController:tvc]; 
self.window.rootViewController = rnc; 

哪裏JCGTableViewController是另一個子我補充道。正如你可能知道的那樣,它是UITableViewController的一個子類。

在JCGTableViewController我推翻init進程:

-(instancetype) init { 

    self = [super init]; 
    if(self) { 
     self.title = @"TVC"; 
     self.view.backgroundColor = [UIColor lightGrayColor]; 
    } 

    return self; 
} 

雖然我用了一個tableViewController,我想你可以任意視圖添加到NavigationController並設置屬性的方式。今天我會玩這個。

謝謝大家!

14

使用故事板時,設置titleUIViewControllerUITableViewController似乎並未將該標題添加到導航控制器,正如其他答案所暗示的。

相反,找到可能與Storyboard面板中的View Controller對象一起的UINavigationItem。設置此導航項目的title將該標題應用於導航控制器。

Navigation Item on Storyboard[1]

相關問題