Я перетаскиваю кнопку с круглым прямоугольником в положение правого элемента кнопки панели и устанавливаю изображение для кнопки с круглым прямоугольником. Все работает нормально, кроме предупреждения «Обычный стиль не поддерживается в элементе навигации». Даже если я выберу стиль элемента кнопки панели на «С рамкой», предупреждение все равно будет. Что случилось с Xcode 4.2? Заранее спасибо!
Пс. Я настроил многие элементы кнопок панели с круглой прямоугольной кнопкой, иногда Xcode 4.2 показывает только одно предупреждение для элемента кнопки панели, иногда показывает предупреждения для всех элементов кнопки панели.
Ответы:
Мне удалось удалить эти ошибки, вручную отредактировав файлы раскадровки и обнаружив оскорбительную запись style = "plain" в элементах Bar Button в
<navigationItem>
элементе.Изменено с:
<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">
Кому:
<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">
Это сняло предупреждения ... правильные или неправильные.
Это может быть колоссальный взлом, и большая проблема заключается в том, что я не являюсь его основной причиной и не удаляю элементы невидимых кнопок панели из всего документа. Это произошло после того, как мы перебрали все элементы один за другим и обнаружили, что некоторые панели навигации пусты (без дочерних элементов) и, вероятно, произошло с большим количеством наследования копирования и вставки (cmd + c | v), а не с использованием дубликата (cmd + d) построить интерфейс. Хотя исходная причина не была основной причиной, симптомом было то, что элементы полосы не отображались в документе «вид схемы», который необходимо исправить. Поведение Interface Builder временами поражает меня своей нюансировкой, а пустой контейнер, в котором должно быть что-то в виде схемы, - это запах. Что ж, теперь это для меня. Иногда удаление сбойного узла и перестройка решают самые странные проблемы.
ВНИМАНИЕ: сделайте резервную копию своих раскадровок, прежде чем попробовать это ... контроль версий - ваш друг ... Я не несу ответственности, если ваша раскадровка полностью заполнена и не компилируется. Все, что вы получите, - это "Я же вам сказал!" Несколько раз я усвоил свой труд, но тщательный контроль версий избавил меня от головной боли.
РЕДАКТИРОВАТЬ: помещайте скобки в блоки кода
источник
style="plain"
из исходного кода раскадровки. Так что мне это предложение Хантера кажется законным.Если вы нажмете на предупреждение и не перейдете к нарушающему элементу навигации, сделайте следующее. (визуальное представление ответа Хантера более безопасным методом из добавленных комментариев)
В браузере файлов щелкните правой кнопкой мыши раскадровку и выберите
Open As Source Code
На странице исходного кода выполните поиск по запросу «plain» и найдите тот, который прикреплен к элементу навигации.
Для того, чтобы получить имя View, поставил «сцену» в строке поиска и нажмите на стрелку назад поиска для поиска первой инстанции на этой метке выше
navigationItem
Вот имя вашей сцены, теперь вы можете изменить вид раскадровки обратно
Interface Builder - Storyboard
с помощью метода правой кнопки мыши, описанного выше, а затем перейти к выбору сцены в меню сцены и элемента панели внутри нее.Перейдите в инспектор атрибутов и измените стиль с
Plain
наBordered
источник
Я остановил предупреждение о простом стиле, покопавшись в структуре документа. Это показывало мой элемент навигации и внутри этих 2 элементов кнопок панели, и внутри каждого из них кнопка. Неправильная настройка была на элементе кнопки панели. В инспекторе атрибутов я изменил стиль с простого на готово, и предупреждение исчезло. Примечание: я использую XCode 5.
источник
Если вы используете раскадровку, щелкните предупреждение, и вы перейдете к проблемному элементу навигации (у меня было два для проблемы, один привел меня туда, а другой нет) - измените стиль и очистите проект.
источник
backBarButtonItem
leftBarButtonItem
иrightBarButtonItem
являютсяUINavigationItem
объектами. Нетstyle
собственности,UINavigationItem
поэтому это причина предупреждения. Вы должны установить barButtons программно: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 .
источник
На панели навигации попробуйте использовать UIBarButtonItem вместо кнопки Round rect и установите для нее изображение.
источник
В моем случае это было изображение стрелки назад, для которой установлено значение «Обычный».
Появляется сообщение об ошибке, относящееся ко всем элементам на панели навигации.
источник
Убедившись, что для всех кнопок панели в раскадровке установлено любое значение, кроме простого, убедитесь, что вы сделали git commit и удалили производные данные. Я всю жизнь пытался понять, почему проблема не устраняется сама собой, и удаление папки с производными данными устранило ее для меня.
источник