Как запустить навигационный контроллер: метод делегирования willShowViewController в AppDelegate - PullRequest
0 голосов
/ 22 сентября 2011

Как я могу активировать навигационный метод navigationController: willShowViewController для моей реализации ниже, чтобы все контроллеры представления в контроллере навигации соответствовали colorWithHexString # faf6f5?

В настоящее время мой FirstViewController будет отображаться, но, похоже, он не вызывает метод делегата для изменения цвета его панели навигации (а также для всех других контроллеров представления, которые впоследствии накладываются на контроллер навигации). Обратите внимание, что я уже добавил «UINavigationControllerDelegate» в файл заголовка делегата приложения.

//In App Delegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //Set First View
    FirstViewController *firstView = [[FirstViewController alloc]init];

    // pushes a nav con 
    UINavigationController *tempNavcon = [[UINavigationController alloc]initWithRootViewController:firstView];
    self.navcon = tempNavcon;

    [self.window addSubview:navcon.view];

}

- (void)navigationController:(UINavigationController *)navigationController 
  willShowViewController:(UIViewController *)viewController animated:(BOOL)animated{

    navigationController.navigationBar.tintColor = [UIColor colorWithHexString:@"#faf6f5"];

}

Ответы [ 2 ]

0 голосов
/ 23 сентября 2011

Вот как ты это делаешь.(Обратите внимание, что UIColor не принимает шестнадцатеричные значения; вы должны использовать значение RGB или проверить эта страница .

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //Initialize your view controller.
    FirstViewController * firstView = [[FirstViewController alloc] init];

    // Create an instance of a UINavigationController. Its stack contains only firstView.
    UINavigationController *navController = [[UINavigationController alloc]
                                             initWithRootViewController:firstView];

    //Here is where you set the color of the navigationBar. See my note above for using RGB.
    navController.navigationBar.tintColor = [UIColor greenColor];

    // You can now release the firstView here, navController will retain it
    [firstView release];

    // Place navigation controller's view in the window hierarchy
    [[self window] setRootViewController:navController];

    [navController release];

    [self.window makeKeyAndVisible];
    return YES;
}
0 голосов
/ 23 сентября 2011

есть ли причина, по которой вы пытаетесь изменить tintColor в методе события, а не при создании экземпляра UINavigationBar?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...