Разное появление Uibarbuttonitem в iOS 26 Beta 4 по сравнению с версией iOS 18 - как сохранить стиль iOS 18?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Разное появление Uibarbuttonitem в iOS 26 Beta 4 по сравнению с версией iOS 18 - как сохранить стиль iOS 18?

Сообщение Anonymous »

I'm encountering an issue where the same code for creating a UIBarButtonItem results in different visual appearances between iOS 18 (or earlier) and iOS 26 Beta 4. I'm testing on simulators and devices using Xcode 26 beta 4.
In my app, I'm setting a right bar button item in a view controller's navigation bar with the following code:

Код: Выделить всё

func initView() {
self.view.backgroundColor = .systemGray6
self.title = "Title"
self.preferredContentSize = CGSize(width: 500, height: 600)
let cancelButton = UIBarButtonItem.init(title: "Close", style: .plain, target: self, action: #selector(cancelAndBack))
self.navigationItem.leftBarButtonItem = cancelButton
if #available(iOS 26.0, *) {
let doneButton = UIBarButtonItem.init(title: "Done", style: .prominent, target: self, action: #selector(cancelAndBack))
self.navigationItem.rightBarButtonItem = doneButton
} else {
let doneButton = UIBarButtonItem.init(title: "Done", style: .done, target: self, action: #selector(cancelAndBack))
self.navigationItem.rightBarButtonItem = doneButton
}

}
< /code>
для кнопки отмены: < /p>

 Здесь нет явного стиля, поэтому он по умолчанию  .plain < /strong>. < /li>
 на ios 18 и ниже, это выглядит как простой текст без фона или граничащего
, который находится в образе Desired. Бета 4, это показывает с белым
фоном и закругленными углами, которые я не хочу. Мне нужен четкий фон без какого -либо округления или кадра. < /Li>
< /ul>
для сделанной кнопки: < /p>

 Я заметил, что Uibarbuttonitem.style.done устарел в iOS 26 (как
per ocomed). Итак, я пытался использовать.  Текст, без фона, без округления) на устройствах iOS 26?
Есть ли какие -либо новые API или параметры конфигурации в iOS 18, которые я должен использовать для переопределения этого стиля по умолчанию?
или это бета -проблема, которая может быть решена? < /p>
полностью код: < /p>
import UIKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

// Create the button
let button = UIButton(type: .system)
button.setTitle("Click me", for: .normal)
button.translatesAutoresizingMaskIntoConstraints = false

button.titleLabel?.font = UIFont.systemFont(ofSize: 18)
button.setTitleColor(.white, for: .normal)
button.backgroundColor = .systemBlue
button.layer.cornerRadius = 8

// Add target for button tap
button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)

// Add button to view
view.addSubview(button)

// Set up constraints to center the button
NSLayoutConstraint.activate([
button.centerXAnchor.constraint(equalTo: view.centerXAnchor),
button.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
}

@objc func buttonTapped() {
let exportViewController = ExportViewController()
let navController = UINavigationController(rootViewController: exportViewController)
navController.modalPresentationStyle = .formSheet

self.present(navController, animated: true, completion: nil)
}
}

import UIKit

class ExportViewController: UIViewController {

func initView() {
self.view.backgroundColor = .systemGray6
self.title = "Title"
self.preferredContentSize = CGSize(width: 500, height: 600)
let cancelButton = UIBarButtonItem.init(title: "Close", style: .plain, target: self, action: #selector(cancelAndBack))
self.navigationItem.leftBarButtonItem = cancelButton
if #available(iOS 26.0, *) {
let doneButton = UIBarButtonItem.init(title: "Done", style: .prominent, target: self, action: #selector(cancelAndBack))
self.navigationItem.rightBarButtonItem = doneButton
} else {
let doneButton = UIBarButtonItem.init(title: "Done", style: .done, target: self, action: #selector(cancelAndBack))
self.navigationItem.rightBarButtonItem = doneButton
}

}

override func viewDidLoad() {
super.viewDidLoad()

// Call initView first to set up the basic view
initView()

// Create and add the label
let helloLabel = UILabel()
if #available(iOS 26.0, *) {
helloLabel.text = "Hello iOS 26"
} else {
helloLabel.text = "Hello iOS 18"
}
helloLabel.font = UIFont.systemFont(ofSize: 48)
helloLabel.textAlignment = .center
helloLabel.translatesAutoresizingMaskIntoConstraints = false

view.addSubview(helloLabel)

// Center the label in the view
NSLayoutConstraint.activate([
helloLabel.centerXAnchor.constraint(equalTo: view.centerXAnchor),
helloLabel.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
}

@objc func cancelAndBack(){
self.dismiss(animated: true, completion: nil)
}

}
Пожалуйста, см. src = "https://i.sstatic.net/gjm2gzqe.png"/>

Подробнее здесь: https://stackoverflow.com/questions/797 ... 18-version
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Невозможно подкрасить индивидуальный вид в Uibarbuttonitem в iOS 26
    Anonymous » » в форуме IOS
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Почему я получаю сообщение об ошибке «стиль элемента» не может быть вложенным в стиль элемента «стиль» "?
    Anonymous » » в форуме CSS
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Получите событие, когда отображается меню UIBarButtonItem
    Anonymous » » в форуме IOS
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Как изменить ограничения UIBarButtonItem?
    Anonymous » » в форуме IOS
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как изменить ограничения UIBarButtonItem?
    Anonymous » » в форуме IOS
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «IOS»