установить выравнивание заголовка панели навигации

Я пытаюсь выровнять заголовок панели навигации по центру в моем приложении, но кажется, что заголовок остается справа (см. Снимок экрана). Я использую код ниже:

-(void)viewDidLoad {
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Home" style:UIBarButtonItemStylePlain target:self action:@selector(goToHomePage:)];
    [self.navigationController.navigationItem.rightBarButtonItem setTarget:self];
    self.navigationItem.rightBarButtonItem = addButton;
    [addButton release];
}

вviewWillAppear() как показано ниже

[self.navigationItem setTitle:offertitle];

и попробовал это тоже

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(40, 0, 120, 40)];
label.backgroundColor = [UIColor clearColor];
label.font = [UIFont boldSystemFontOfSize:14.0];
label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
label.textAlignment = UITextAlignmentLeft;
label.textColor =[UIColor whiteColor];
label.text=offertit;
self.navigationItem.titleView = label;

заголовок отображает выравнивание по центру заголовка, когда я прячу кнопку «назад». Есть ли способ установить атрибуты появления кнопки назад?

ссылка на изображение здесь

Кто-нибудь может направить меня туда, где я мог ошибиться.

Ответы на вопрос(6)

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self)
    {
        // this will appear as the title in the navigation bar
        UILabel *label = [[[UILabel alloc] initWithFrame:CGRectZero] autorelease];
        label.backgroundColor = [UIColor clearColor];
        label.font = [UIFont boldSystemFontOfSize:20.0];
        label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
        label.textAlignment = UITextAlignmentCenter;
        label.textColor = [UIColor yellowColor]; // change this color
        self.navigationItem.titleView = label;
        label.text = NSLocalizedString(@"PageThreeTitle", @"");
        [label sizeToFit];
    }

    return self;
}
Решение Вопроса

т код:

[self.navigationItem setTitle:@"Your Title"];

и тебе пора! Этот код будет автоматически размещен в центре панели навигации.

Или, если у вас есть экземпляр UINavigationController, используйте:

[self setTitle:@"Your Title"];
 12 июн. 2012 г., 18:54
Добро пожаловать.
 user126893812 июн. 2012 г., 13:32
Спасибо. Это сработало.
 06 февр. 2017 г., 11:29
У меня та же проблема, но у меня она не сработала, я получил те же результаты, что и на изображении.

- (void)prepareNavigationTitle
{
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(-50, 0.0, 240.0, 40.0)];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:14.0];
    label.shadowColor = [UIColor colorWithWhite:0.0 alpha:0.5];
    label.textAlignment = UITextAlignmentLeft;
    label.textColor =[UIColor whiteColor];
    label.text=offertit;
    self.navigationItem.titleView = label;
}

self.title = @ & quot; Your Title & quot ;;

& quot; в методе viewWillDisappear в предыдущем контроллере представления.

Например. ViewControllerB открывается из ViewControllerA, затем устанавливается self.title = & quot; & quot; в ViewControllerA 's & quot; viewWillDisappear & quot; метод

YourTitle & quot ;; этот код поместит заголовок в центр панели навигации.

Ваш ответ на вопрос