I think i found the issue, as somehow xcode 26.1 and iOS 26.1 simulator helped me reproduce this fairly.
The problem was I had two UIBarButtonItem created as the class level for a subclass of UINavigationController. Now, when they were getting reused due to pushViewController under the same navigationController the buttons were reused for every new controller
class A: UINavigationController {
let x = UIBarButton()
ley y = UIBarButton()
func foo() {
viewController.navigationItem.leftBarButtonItem = x
viewController.navigationItem.rightBarButtonItem = y
}
}
It was working so far without issue except when 26.1 came in.
if i modify it to locally create buttons for every viewController it works fine but curious what has changed recently in UIKit of OS 26.1 that its not liking the re-use.
class A: UINavigationController {
ley y = UIBarButton()
func foo() {
let x = UIBarButton()
viewController.navigationItem.leftBarButtonItem = x
let y = UIBarButton()
viewController.navigationItem.rightBarButtonItem = y
}
}
Topic:
UI Frameworks
SubTopic:
UIKit