2

Я ищу выбор UIButtonTypeInfoLight в списке идентификаторов для элементов панели кнопок, и я не вижу его. Итак, два вопроса.Где находится UIButtonTypeInfoLight?

  1. Это просто отсутствует, и мне нужно будет создать его вручную, в коде? Мне интересно, почему они это пропустили.

  2. Предполагая, что мне нужно создать кнопку вручную, чтобы вызвать ее из нее, мне нужно вручную выполнить segue, а не использовать раскадровку?

Я предполагаю, что я хотел бы сделать это [self performSegueWithIdentifier:@"ShowChecklist" sender:nil]; от метода, что моя кнопка вызывающий.

Код, который создал мою кнопку

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
[infoButton addTarget:self action:@selector(infoButtonAction) forControlEvents:UIControlEventTouchUpInside]; 
UIBarButtonItem *modalButton = [[UIBarButtonItem alloc] initWithCustomView:infoButton]; 
[self.navigationItem setRightBarButtonItem:modalButton animated:YES]; 

Так ли это общая закономерность? Я делаю что-то странное и нестандартное? Мне просто кажется странным, что если бы мой BarButton был просто специальной кнопкой, в которой говорилось «информация», я мог бы создать ее и подключить к ней в раскадровке ... но для этого мне нужно все делать в коде.

Th menu:

ответ

7

UIButtonTypeInfoLight является UIButton. Элементы панели кнопок - это элементы UIBarButtonItems. Они не имеют ничего общего друг с другом. Вы просто путаете яблоки и апельсины.

Однако UIBarButtonItem может содержит a UIButton. (Это просто в силу того, что он может содержать любой UIView.) Поэтому перетащите UIButton на панель инструментов. Вы получаете UIBarButtonItem , содержащий a UIButton. Если вы дважды щелкните UIBarButtonItem, вы получите UIButton. Теперь вы можете установить кнопку.

+1

Perfect. Спасибо. Теперь я создаю эту присоску в коде, и она работает как шарм. – JMattos

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