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)
}
}
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: [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
// 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
// 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) ]) }
Под iOS 26 внешний вид навигационных стержней и панелей инструментов немного изменился. Я сталкиваюсь с проблемой, пытаясь отточить добавленные элементы. Для экземпляров «Standard» uibarbuttonitem вы просто устанавливаете Tintcolor , и он работает...
Мы все знаем, как сделать так, чтобы простое нажатие на элемент кнопки панели отображало меню (представлено в iOS 14):
let act = UIAction(title: Howdy ) { act in
print( Howdy )
}
let menu = UIMenu(title: , children: )
self.bbi.menu = menu //...
У меня есть пользовательская панель навигации с суперклассом UINavigationBar с пользовательским контроллером навигации с суперклассом UINavigationController. Я добавил кнопку в левую часть панели навигации. Я также изменил высоту панели навигации и...
У меня есть пользовательская панель навигации с суперклассом UINavigationBar с пользовательским контроллером навигации с суперклассом UINavigationController. Я добавил кнопку в левую часть панели навигации. Я также изменил высоту панели навигации и...