0

У меня возникла проблема с цветом текста элемента навигации на iOS7.iOS 7 - панель навигации пункт текст цвет

Все вещи прекрасны до тех пор, пока я не представим viewcontroller, с этого времени все цвета текста панели навигации будут серыми. Есть ли у вас опыт в этой проблеме?

Коды, используемые для представления VC:

[passcodePopover presentPopoverFromRect:CGRectMake([UIScreen mainScreen].bounds.size.width/2 ,currentWindow.frame.size.height/2,1,1) 
            inView:currentWindow 
        permittedArrowDirections:0 animated:NO];[passcodePopover presentPopoverFromRect:CGRectMake([UIScreen mainScreen].bounds.size.width/2 ,currentWindow.frame.size.height/2,1,1) 
            inView:currentWindow 
        permittedArrowDirections:0 animated:NO]; 
+0

Я обнаружил, что основная причина, когда присутствует viewcontroller, изменит атрибут tint для приложения. не знаю почему –

ответ

0

В методе viewdidLoad в passcodePopover в вы хотите использовать этот код.

self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; 
NSDictionary *textTitleOptions = [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], NSForegroundColorAttributeName, nil]; 
[self.navigationController.navigationBar setTitleTextAttributes:textTitleOptions]; 

Если вы не имеете navigationController в ваших пирогах вам придется немного изменить код, и вы не можете использовать [UIColor whiteColor]. Вместо этого замените свой собственный цвет.

0

использование ниже кода в функции viewdid нагрузки

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { 

     // Load resources for iOS 6.1 or earlier 
     [[UINavigationBar appearance]setTintColor:NavigationColor]; 
    } else 
    { 
     [[UINavigationBar appearance]setTintColor:[UIColor whiteColor]]; // it set color of bar button item text 
    } 
+0

Метод, используемый для проверки версии операционной системы, зависит от вашей целевой платформы: Чтобы проверить версию iOS во время выполнения, используйте следующий код: 'NSString * osVersion = [[UIDevice currentDevice] systemVersion ]; ' Чтобы проверить версию OS X во время выполнения, используйте функцию Gestalt и константы выбора версии системы. – voromax

1
//call the below code in ViewDidLoad /It works fine in iOS7 

UILabel *navLabel = [[UILabel alloc] initWithFrame:CGRectMake(0,0, 320, 100)]; 
navLabel.backgroundColor = [UIColor clearColor]; 
navLabel.text = @"Event Details"; 
navLabel.textColor = [UIColor whiteColor]; 
navLabel.shadowOffset = CGSizeMake(0, -2); 
[navLabel setFont:[UIFont boldSystemFontOfSize:16]]; 
navLabel.textAlignment = NSTextAlignmentCenter; 
self.navigationItem.titleView = navLabel; 
1
UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero] ; 
label.backgroundColor = [UIColor clearColor]; 
label.font = [UIFont boldSystemFontOfSize:20.0]; // font size 
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5]; 
label.textAlignment = NSTextAlignmentCenter; 

label.textColor = [UIColor yellowColor]; // change this color 
self.navigationItem.titleView = label; 
label.text = NSLocalizedString(@"Product Info.", @""); // lable name 
[label sizeToFit]; 
0

создать категорию вместо:

@implementation UINavigationBar (custom) 
- (void)setCustomNavigationBar: (NSString *)_strTitle 
{ 
    [self setBackgroundImage:[UIImage imageNamed:@"navigationbar"] forBarMetrics:UIBarMetricsDefault]; 

    UILabel *_lblTitle = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 100, 30)]; 
    _lblTitle.text = _strTitle; 
    _lblTitle.textAlignment = NSTextAlignmentCenter; 
    [_lblTitle setBackgroundColor:[UIColor clearColor]]; 
    [_lblTitle setFont:[UIFont fontWithName:kAppFontBold size:kAppFontBoldSize]]; 
    [_lblTitle setTextColor:[UIColor navigationBarColor]]; 
    [[self topItem] setTitleView:_lblTitle]; 
} 

Где kAppFontBold и kAppFontBoldSize макросы.

0

Вы можете использовать это. Это может вам помочь .. Здесь я установил font and text color для двух состояний.

[barItemForIndex setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
                [UIFont systemFontOfSize:Tabbar_Item_Font_Size], NSFontAttributeName, 
                [UIColor darkGrayColor], NSForegroundColorAttributeName, 
                nil] forState:UIControlStateNormal]; 
[barItemForIndex setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: 
                [UIFont systemFontOfSize:Tabbar_Item_Font_Size], NSFontAttributeName, 
                [UIColor whiteColor], NSForegroundColorAttributeName, 
                nil] forState:UIControlStateSelected]; 

Примечание:setTitleTextAttributes: метод доступен только ios5.0 +.

1
[[UINavigationBar appearance] setTitleTextAttributes: 
    [NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], 
    NSForegroundColorAttributeName,[UIColor whiteColor], 
    NSForegroundColorAttributeName,[NSValue valueWithUIOffset:UIOffsetMake(0, -1)], 
    NSForegroundColorAttributeName,[UIFont fontWithName:@"Arial-Bold" size:0.0], 
    NSFontAttributeName,nil]];