1

У меня есть следующий код, который находится в -viewDidLoad::UILabel на UIToolbar (программно) не отображается ярлык

self.navigationController.toolbarHidden = NO; 

UIBarButtonItem *shareButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(sendEmail:)]; 

    UIBarButtonItem *spacer1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil]; 

    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0.0 , 25, self.view.frame.size.width, 21.0f)]; 
    label.backgroundColor = [UIColor clearColor]; 
    label.textColor = [UIColor whiteColor]; 
    label.text = @"text-here"; 
    label.userInteractionEnabled = NO; 
    label.font = [UIFont systemFontOfSize:18.0]; 
    label.textAlignment = NSTextAlignmentCenter; 

    UIBarButtonItem *labelItem = [[UIBarButtonItem alloc] initWithCustomView:label]; 

    self.navigationController.toolbarItems = [NSArray arrayWithObjects:shareButton, spacer1, labelItem, nil]; 

Однако, когда я загрузить приложение, панель отображает только shareButton, который связан с распространением содержимого приложения по электронной почте. Ярлык не отображается (и я хочу его). Я в основном скопировал этот точный код из других вопросов, заданных в stackoverflow, и везде, где я смотрю, это тот же ответ ... есть ли что-то другое в этом вопросе?

Я предполагаю, что, поскольку кнопка совместного доступа работает, панель инструментов отлично работает. Другие ответы на такие вопросы, как мои, вызвали [self.navigationController.view addSubview: toolbarObj] ;, но я просто использовал панель инструментов, интегрированную с навигационным контроллером.

Проставка ... ну, я точно не знаю, сколько спейсеров делает для меня на этом этапе. Прямо сейчас, если я правильно понимаю, проставка будет толкать мой ярлык в крайнее правое, правильно? Разве это не будет равномерно распределять объекты? Мне бы хотелось, чтобы метка была в центре панели инструментов.

Справка и объяснение были бы весьма благодарны.

ответ

1

Когда я запускаю ваш код, он не показывает ни метки, ни кнопки. Если я делаю изменения ниже, оба они появляются:

Изменение:

self.navigationController.toolbarItems = [NSArray arrayWithObjects:shareButton, spacer1, labelItem, nil]; 

к:

self.toolbarItems = [NSArray arrayWithObjects:shareButton, spacer1, labelItem, nil]; 

Если вы хотите, чтобы ваш ярлык в середине, сделать его меньше (я просто разделил ширину обзора на 2) и добавьте вторую проставку на другую сторону:

self.toolbarItems = [NSArray arrayWithObjects:shareButton, spacer1, labelItem, spacer2, nil]; 
+0

Интересно ... это показывает кнопку обмена для меня и отлично работает. У меня нет доступа к проекту прямо сейчас, но я хотел сообщить, что знаю, что вы ответили, и я это ценю. Я дам вам знать, будет ли это работать для меня (я уверен, что так будет) –

+0

да, это сработало для меня отлично! Спасибо огромное! –

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