2012-06-11 8 views
3

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

-(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; 

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

image link here

Может кто-нибудь наставит меня, где я, возможно, не так.

ответ

8

Вам не нужно использовать UILabel. Вы можете напрямую использовать этот код:

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

и вы в порядке! Этот код автоматически поместит себя в центр навигационной панели.

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

[self setTitle:@"Your Title"]; 
+0

Спасибо. Это сработало. – user1268938

+0

Добро пожаловать. – Kimpoy

+0

У меня такая же проблема, но это не сработало для меня, у меня есть такие же результаты, как показано на изображении. –

0
- (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; 
} 
0

Просто позвоните это в ViewDidLoad

- (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; 
} 
0

Если у вас есть навигационный контроллер, то просто добавьте: self.title = @ "Your Title";

0

Попробуйте использовать self.navigationItem.title = @ "YourTitle"; этот код поместит заголовок в центр навигационной панели.

1

Вам нужно установить self.title = «» в методе viewWillDisappear в предыдущем ViewController.

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

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