Skip to content

Commit 5841434

Browse files
committed
update usage of traitCollectionDidChange
1 parent d56fae1 commit 5841434

File tree

7 files changed

+51
-51
lines changed

7 files changed

+51
-51
lines changed

WooCommerce/Classes/Authentication/Navigation Exceptions/RoleErrorViewController.swift

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class RoleErrorViewController: UIViewController {
6161
super.viewDidLoad()
6262

6363
configureViews()
64+
observeTraitChanges()
6465
}
6566

6667
override func viewWillAppear(_ animated: Bool) {
@@ -95,6 +96,19 @@ class RoleErrorViewController: UIViewController {
9596
configureLinkButton()
9697
configurePrimaryActionButton()
9798
configureSecondaryActionButton()
99+
100+
// Set initial image visibility based on vertical size class
101+
imageView.isHidden = traitCollection.verticalSizeClass == .compact
102+
}
103+
104+
private func observeTraitChanges() {
105+
registerForTraitChanges([UITraitVerticalSizeClass.self, UITraitUserInterfaceStyle.self]) { (self: Self, _) in
106+
// Hide image in compact height sizes (e.g. landscape iPhones)
107+
// With limited space, text description should have higher priority
108+
self.imageView.isHidden = self.traitCollection.verticalSizeClass == .compact
109+
110+
self.updateViewAppearances()
111+
}
98112
}
99113

100114
func configureDescriptionLabel() {
@@ -128,24 +142,9 @@ class RoleErrorViewController: UIViewController {
128142
}
129143
}
130144

131-
// MARK: Trait Change Adjustments
132-
133-
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
134-
super.traitCollectionDidChange(previousTraitCollection)
135-
136-
// hide image in compact height sizes (e.g. landscape iphones).
137-
// with limited space, text description should have higher priority.
138-
imageView.isHidden = traitCollection.verticalSizeClass == .compact
139-
140-
// handle dynamic color appearance changes.
141-
if let previousTrait = previousTraitCollection,
142-
previousTrait.hasDifferentColorAppearance(comparedTo: traitCollection) {
143-
updateViewAppearances()
144-
}
145-
}
146145

147146
/// update views that can adjust to color appearance changes.
148-
/// this method is called when color appearance changes are detected in `traitCollectionDidChange`.
147+
/// this method is called when color appearance changes are detected via trait change registration.
149148
private func updateViewAppearances() {
150149
// illustrations
151150
imageView.image = viewModel.image

WooCommerce/Classes/Authentication/Navigation Exceptions/ULAccountMismatchViewController.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,15 @@ final class ULAccountMismatchViewController: UIViewController {
6262
configureSecondaryButon()
6363

6464
setUnifiedMargins(forWidth: view.frame.width)
65+
observeTraitChanges()
6566

6667
viewModel.viewDidLoad(self)
6768
}
6869

69-
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
70-
super.traitCollectionDidChange(previousTraitCollection)
71-
setUnifiedMargins(forWidth: view.frame.width)
70+
private func observeTraitChanges() {
71+
registerForTraitChanges([UITraitHorizontalSizeClass.self, UITraitVerticalSizeClass.self]) { (self: Self, _) in
72+
self.setUnifiedMargins(forWidth: self.view.frame.width)
73+
}
7274
}
7375

7476
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {

WooCommerce/Classes/Authentication/Navigation Exceptions/ULErrorViewController.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ final class ULErrorViewController: UIViewController {
7272
configureButtonLabels()
7373

7474
setUnifiedMargins(forWidth: view.frame.width)
75+
observeTraitChanges()
7576

7677
viewModel.viewDidLoad(self)
7778
}
@@ -81,9 +82,10 @@ final class ULErrorViewController: UIViewController {
8182
viewDidAppearSubject.send()
8283
}
8384

84-
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
85-
super.traitCollectionDidChange(previousTraitCollection)
86-
setUnifiedMargins(forWidth: view.frame.width)
85+
private func observeTraitChanges() {
86+
registerForTraitChanges([UITraitHorizontalSizeClass.self, UITraitVerticalSizeClass.self]) { (self: Self, _) in
87+
self.setUnifiedMargins(forWidth: self.view.frame.width)
88+
}
8789
}
8890

8991
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {

WooCommerce/Classes/ViewRelated/FilterTabBar/FilterTabBar.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -518,23 +518,23 @@ private class TabBarButton: UIButton {
518518
super.init(frame: frame)
519519

520520
setFont()
521+
observeTraitChanges()
521522
}
522523

523524
required init?(coder: NSCoder) {
524525
super.init(coder: coder)
525526

526527
setFont()
528+
observeTraitChanges()
527529
}
528530

529531
private func setFont() {
530532
titleLabel?.applySubheadlineStyle()
531533
}
532534

533-
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
534-
super.traitCollectionDidChange(previousTraitCollection)
535-
536-
if previousTraitCollection?.preferredContentSizeCategory != traitCollection.preferredContentSizeCategory {
537-
setFont()
535+
private func observeTraitChanges() {
536+
registerForTraitChanges([UITraitPreferredContentSizeCategory.self]) { (self: Self, _) in
537+
self.setFont()
538538
}
539539
}
540540
}

WooCommerce/Classes/ViewRelated/MainTabBarController.swift

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,13 @@ final class MainTabBarController: UITabBarController {
231231
startListeningToHubMenuTabBadgeUpdates()
232232

233233
fixTabBarTraitCollectionOnIpadForiOS18()
234+
observeTraitChanges()
235+
}
236+
237+
private func observeTraitChanges() {
238+
registerForTraitChanges([UITraitHorizontalSizeClass.self, UITraitVerticalSizeClass.self]) { (self: Self, _) in
239+
self.fixTabBarTraitCollectionOnIpadForiOS18()
240+
}
234241
}
235242

236243
override func viewWillAppear(_ animated: Bool) {
@@ -310,12 +317,6 @@ final class MainTabBarController: UITabBarController {
310317

311318
// MARK: - iPadOS 18 tabs support
312319

313-
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
314-
super.traitCollectionDidChange(previousTraitCollection)
315-
fixTabBarTraitCollectionOnIpadForiOS18()
316-
}
317-
318-
319320
/// Force a previous bottom tab bar design on iPadOS 18 when built with Xcode 16
320321
///
321322
/// Override a trait collection for the tab bar controller to be compact to show the same tab layout as on iPhone

WooCommerce/Classes/ViewRelated/Survey/SurveySubmittedViewController.swift

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,13 @@ final class SurveySubmittedViewController: UIViewController, SurveySubmittedView
6767
applyStyleToComponents()
6868
applyLocalizedTextsToComponents()
6969
configureStackViewsAxis()
70+
observeTraitChanges()
71+
}
72+
73+
private func observeTraitChanges() {
74+
registerForTraitChanges([UITraitPreferredContentSizeCategory.self]) { (self: Self, _) in
75+
self.configureStackViewsAxis()
76+
}
7077
}
7178

7279
@IBAction private func contactUsButtonTapped(_ sender: Any) {
@@ -118,15 +125,6 @@ private extension SurveySubmittedViewController {
118125
}
119126
}
120127

121-
// MARK: Accessibility handling
122-
//
123-
extension SurveySubmittedViewController {
124-
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
125-
super.traitCollectionDidChange(previousTraitCollection)
126-
configureStackViewsAxis()
127-
}
128-
}
129-
130128
// MARK: Constants
131129
//
132130
private extension SurveySubmittedViewController {

WooCommerce/Classes/ViewRelated/Top Banner/TopBannerView.swift

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,13 @@ final class TopBannerView: UIView {
7474
actionButtons = viewModel.actionButtons.map { _ in UIButton() }
7575
super.init(frame: .zero)
7676
configureSubviews(with: viewModel)
77+
observeTraitChanges()
78+
}
79+
80+
private func observeTraitChanges() {
81+
registerForTraitChanges([UITraitPreferredContentSizeCategory.self]) { (self: Self, _) in
82+
self.updateStackViewsAxis()
83+
}
7784
}
7885

7986
required init?(coder aDecoder: NSCoder) {
@@ -312,15 +319,6 @@ private extension TopBannerView {
312319
}
313320
}
314321

315-
// MARK: Accessibility Handling
316-
//
317-
extension TopBannerView {
318-
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
319-
super.traitCollectionDidChange(previousTraitCollection)
320-
updateStackViewsAxis()
321-
}
322-
}
323-
324322
// MARK: UI Updates
325323
//
326324
private extension TopBannerView {

0 commit comments

Comments
 (0)