"Обычный стиль, не поддерживаемый в элементе навигации", с моей настраиваемой кнопкой "Панель"
Я перетаскиваю кнопку Round Rect в положение правой панели Button Button и устанавливаю изображение на кнопку Round Rect. Все работает хорошо, кроме предупреждения "Обычный стиль не поддерживается в навигационном элементе". Даже если я выберу стиль элемента "Кнопка бара" на "Bordered", предупреждение все равно будет. Что с Xcode 4.2? Спасибо заранее!
Ps. Я настроил много элементов батонной кнопки с круглой кнопкой Rect, иногда Xcode 4.2 показывает только одно предупреждение на баре Button Item, несколько раз показывает предупреждения на всех элементах Button.
Ответы
Ответ 1
Мне удалось удалить эти ошибки, вручную отредактировав файлы раскадровки и найти запись о непристойном стиле = "простая" в элементах кнопки "Бар" в элементе <navigationItem>
.
Изменено:
<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">
To:
<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">
Это очистило предупреждения... правильные или неправильные.
Это может быть потрясающий взлом, и большая проблема заключается в том, что я не стал причиной его или удалил элементы невидимого элемента панели из общего документа. Это было после прохождения всех элементов по одному, и обнаружение некоторых навигационных баров было пустым (без детей) и, вероятно, произошло с большим количеством копий и вставки (cmd + c | v) наследования, а не с использованием дубликата (cmd + d) для создания интерфейса. Хотя причина источника не была вызвана корнем, симптомом было то, что элементы бара не отображались в документе "Контурное представление", которое должно быть исправлено. Поведение интерфейса Builder иногда меня раздражает, а пустой контейнер, где должно быть что-то в контурном представлении, - это запах. Ну, это для меня сейчас. Иногда удаление оскорбительных node и перестроение исправляет самые странные проблемы.
ПРЕДУПРЕЖДЕНИЕ: создайте резервную копию своих раскадровки, прежде чем попробовать этот... контроль версий - ваш друг... Я не несу ответственности, когда ваш раскадровка полностью закрыта и не будет компилироваться. Все, что вы получите, это "Я сказал вам об этом!" Я многому научился несколько раз, но прилежный контроль источника спас меня от головной боли.
EDIT: положить скобки в кодовые блоки
Ответ 2
Если вы нажмете на предупреждение и не перейдете в пункт навигации, выполните следующие действия. (визуальное представление ответа Hunter с более безопасным методом из добавленных комментариев)
В браузере файлов щелкните правой кнопкой мыши раскадровку и выберите Open As Source Code
![введите описание изображения здесь]()
На странице исходного кода найдите "plain" и найдите тот, который прикреплен к элементу навигации.
![введите описание изображения здесь]()
Чтобы получить имя представления, поместите "сцену" в строку поиска и нажмите стрелку назад для поиска первого экземпляра в этом теге над navigationItem
![введите описание изображения здесь]()
Вот название вашей сцены, теперь вы можете изменить вид раскадровки назад на Interface Builder - Storyboard
с помощью метода правого щелчка, описанного выше, а затем перейти к выбору сцены в меню сцены и элемента панели внутри нее.
![введите описание изображения здесь]()
Перейдите к инспектору атрибутов и измените стиль с Plain
на Bordered
![введите описание изображения здесь]()
Ответ 3
Я остановил предупреждение о стиле Plain, высунувшись в контуре документа. Это показывало мой пункт навигации и в пределах этого 2 элемента кнопки бара и внутри каждой из них кнопка. Параметр "Нарушение" находился в пункте "Кнопка бара". В своем инспекторе атрибутов я изменил "Стиль" с "Простой" на "Готово", и предупреждение исчезло. Примечание. Я использую XCode 5.
Ответ 4
Если вы используете раскадровку, тогда нажмите предупреждение, и оно должно привести вас к оскорбительному навигационному элементу (у меня было два проблемы, один взял меня там, а другой нет) - измените стиль и очистите проект.
![Bar Button Style set to plain]()
Ответ 5
backBarButtonItem
leftBarButtonItem
и rightBarButtonItem
являются объектами UINavigationItem
. В UINavigationItem
нет свойства style
, поэтому это является причиной предупреждения. Вы должны программировать программные кнопки:
iOS 4:
UIButton *bt=[UIButton buttonWithType:UIButtonTypeRoundedRect];
[bt setFrame:YourFrame];
//[bt setImage:[UIImage imageNamed:@"backBT"] forState:UIControlStateNormal];
[bt addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *leftButton=[[UIBarButtonItem alloc] initWithCustomView:bt];
self.navigationItem.leftBarButtonItem=leftButton;
Для iOS 5 +:
Прочтите раздел "Настройка внешнего вида" ссылка UIBarButtonItem.
Ответ 6
На панели навигации попробуйте использовать UIBarButtonItem вместо кнопки Round rect и установите для нее изображение.
Ответ 7
В моем случае это была обратная стрелка назад, которая была установлена на "Обычная".
Появится сообщение об ошибке со всеми элементами на панели навигации.
Ответ 8
После того, как вы уверены, что у вас есть все кнопки на панели в раскадровке, настроенные на что-либо, кроме простого, убедитесь, что вы выполняете git фиксацию и удаление полученных данных. Я потратил на это время, пытаясь понять, почему проблема не фиксирует себя, и удаление папки с производными данными исправлено для меня.