2016-08-21 8 views
-1

Как установить заголовок в корневом контроллере просмотра внутри диспетчера навигации.
Как правило, ответ кажется «set self.title какого-то viewcontroller». но это работает только для контроллеров view, на которые я нажимаю. На начальном диспетчере просмотра работает
self.title = @"my title"; или self.navigationController.navigationItem.title = @"my titles"; не работает.Как установить заголовок для панели навигации

мышление, которое необходимо установить ранее, я сделал это приложение делегата:

MainMenuViewController *mainMenuViewController = [[MainMenuViewController alloc] initWithNibName:@"MainMenuViewController" bundle:nil]; 
    mainMenuViewController.title = @"coding chal"; 
    self.navController = [[UINavigationController alloc] initWithRootViewController:mainMenuViewController]; 

Что я должен сделать для корневой ViewController иметь название?
Заранее спасибо

+0

Я использую xib для просмотра, поэтому нет раскадровки. Может ли быть так же просто, как переопределить инициализацию по умолчанию? –

+0

Я действительно вызываю 'initWithNibName', я переопределил' initWithCoder', но он никогда не вызывается. И есть ли смысл устанавливать заголовок и navigationItem.title? –

+0

в любом случае, я попробовал переопределить 'initWithNibName', который ** делает ** вызывается, но установка двух указанных вами свойств не позволяет отобразить заголовок –

ответ

0

Установка контроллера title контроллера вида действительно работает. Когда вы сталкиваетесь с проблемами, лучший курс - это минимальный тестовый пример. Вот он. Это единственный код в приложении!

В приложение делегата:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Override point for customization after application launch. 
    self.window = [UIWindow new]; 
    ViewController* vc = [[ViewController alloc] initWithNibName:nil bundle:nil]; 
    UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:vc]; 
    self.window.rootViewController = nav; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

В контроллере представления:

- (instancetype) initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    self.title = @"Testing"; 
    return self; 
} 

Результат:

enter image description here

Таким образом, вы можете видеть, что это действительно работает. Следовательно, если это не работает в вашем проекте приложения, это должно быть из-за другого кода.

+0

это тот же код, который у меня есть. –

+0

Ну, предположительно у вас есть другой код, который закручивает вещи. Я ничего не знаю об этом. Думаю, я доказал, что это работает. Что вы хотите, чтобы я сделал, напишите вам проект? – matt

Смежные вопросы