Я пытаюсь изменить цвет кнопки «Настройки» на белый, но не могу изменить его.
Я пробовал оба из них:
navigationItem.leftBarButtonItem?.tintColor = UIColor.whiteColor()
navigationItem.backBarButtonItem?.tintColor = UIColor.whiteColor()
но без изменений, это все равно выглядит так:
Как мне сделать эту кнопку белой?
ios
swift
uinavigationbar
uibarbuttonitem
backbarbuttonitem
Брэндон Эванс
источник
источник
AppDelegate.swift > application(application:didFinishLaunchingWithOptions:)
вы можете написать:self.window!.tintColor = .yourColor
Этот код меняет цвет стрелки
Если это не работает, используйте код ниже:
Свифт 3 ноты
UIColor.whiteColor()
и аналогичные были упрощены доUIColor.white
Кроме того, многие ранее неявные дополнительные функции были изменены на явные, поэтому вам может потребоваться:
источник
self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()
работал для меня (Swift 2.2)Очень легко настроить в раскадровке:
источник
Вы должны использовать это:
источник
стриж
источник
Вы можете использовать как этот. Поместите это внутрь
AppDelegate.swift
.источник
Swift 4.2
Изменить полную тему приложения
Изменить конкретный контроллер
источник
UINavigationController
?В Swift3 , чтобы установить кнопку Назад в
red
.источник
В Swift 4 вы можете решить эту проблему, используя:
источник
Swift 3
Наиболее одобренный ответ не является правильным для Swift 3.
Правильный код для изменения цвета:
Если вы хотите изменить цвет, измените UIColor.white выше на желаемый цвет
источник
Все настройки ответов
UINavigationBar.appearance().tintColor
противоречат документации Apple вUIAppearance.h
.В XCode вам нужно щелкнуть по команде каждое свойство, которое вы хотите использовать с прокси внешнего вида, чтобы проверить файл заголовка и убедиться, что свойство помечено
UI_APPEARANCE_SELECTOR
.Таким образом, правильный способ окрасить панель навигации в фиолетовый цвет, а заголовок и кнопки - по всему приложению через прокси внешнего вида:
Обратите внимание, что
UIBarButtonItem
это не подкласс,UIView
а скорееNSObject
. Так что егоtintColor
собственность не наследуетсяtintColor
отUIView
.К сожалению,
UIBarButtonItem.tintColor
это не аннотированоUI_APPEARANCE_SELECTOR
- но это мне кажется ошибкой документации. Ответ от Apple Engineering на этом радаре гласит, что он поддерживается.источник
Этот фрагмент делает магию. Вместо redColor измените его на ваше желание.
источник
Используйте этот код в
AppDelegate
классе, внутриdidFinishLaunchingWithOptions
.источник
Давайте попробуем этот код:
источник
в использовании swift 2.0
источник
Если у вас уже есть кнопка «Назад» в вашем контроллере представления «Настройки» и вы хотите изменить цвет кнопки «Назад» в контроллере представления «Информация об оплате» на что-то другое, вы можете сделать это в «Настройках», чтобы подготовить контроллер к следующей передаче, как это :
источник
Это работает для меня, iOS 9.0+
источник
Добавьте следующий код в didFinishLaunchingWithOptions функции в AppDelegate.swift
источник
Для Swift 2.0: Чтобы изменить цвет оттенка навигационной панели , текст заголовка и цвет оттенка кнопки «Назад» изменились с помощью следующего в AppDelegate.swift
источник
Не знаю, почему никто не упомянул об этом ... но я делал именно то, что вы делали в моем
viewDidLoad
... и это не сработало. Затем я поместил свой код в,viewWillAppear
и все заработало.Приведенное выше решение заключается в изменении одного элемента barbuttonItem. Если вы хотите изменить цвет для каждой панели навигации в вашем коде, следуйте этому ответу .
По сути, переход на сам класс с использованием
appearance()
подобен глобальному изменению всех экземпляров этого представления в вашем приложении. Подробнее смотрите здесьисточник
У вас есть один выбор - спрятать кнопку «Назад» и сделать это самостоятельно. Затем установите его цвет.
Я это сделал:
источник
Это будет решено с помощью этой строки в - (void) viewDidLoad:
источник
(lldb) p self.navigationItem.backBarButtonItem (UIBarButtonItem *) $9 = nil (lldb)
Вы должны добавить эту строку
источник
Я предпочитаю настраиваемый NavigationController, а не настройку глобального пользовательского интерфейса или использование ViewController.
Вот мое решение
Также вам не нужно связываться с Apple Api, такими как EKEventEditViewController , PickerViewController и т. Д., Если вы используете глобальные настройки, такие как
UIBarButtonItem.appearance().tintColor = .white
источник
источник