Я использую MDC (компоненты дизайна материалов) для создания своего пользовательского интерфейса в приложении для iOS, у меня в приложении 2 языка - английский и арабский, при переключении на арабский язык я вынуждаю направо справа налево ко всем своим представлениям, это прекрасно работаеткак показано на рисунках ниже:
форсирование RTL для всех представлений в AppDelegate следующим образом:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UIView.appearance().semanticContentAttribute = .forceRightToLeft
}
результат:
Но проблема, когда я нажимаю контроллер вида в режиме слева направо, выглядит так:
Но в режиме RTL это выглядит следующим образом:
Я пытаюсь перевернуть кнопку возвратагоризонтально, но безуспешно, вот код в моем контроллере push-представления:
class UserCartViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
(UIApplication.shared.delegate as! AppDelegate).appBar?.navigationBar.backItem?.image?.mdf_imageWithHorizontallyFlippedOrientation()
}
}
backItem
в данном случае nil
, но когда я задерживаю код:
class UserCartViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
(UIApplication.shared.delegate as! AppDelegate).appBar?.navigationBar.backItem?.image?.mdf_imageWithHorizontallyFlippedOrientation()
}
}
}
у backItem
есть значение и изображение, но mdf_imageWithHorizontallyFlippedOrientation()
не работает, поэтому мои вопросы:
- Есть ли лучший способ исправить кнопку возврата по умолчаниюMDCAppBar переворачивается, когда я заставляю все представления быть RTL?
- Почему после временной задержки я получаю значения для кнопки назад, есть ли какая-либо функция или делегат, запущенный, когда MDCAppBar готов?
- И, наконец, почему
mdf_imageWithHorizontallyFlippedOrientation()
не работает с изображением?
Заранее спасибо