How to identify iPhone Plusses that mimic iPads with SplitView Controllers?

My Classic splitviewcontroller app works as designed with regular iPhones and iPads. But because I add buttons (e.g. back buttons) that are often missing, when I test on the Plus size iPhones in the simulator (I don't have any of the mega phones), these buttons remain in iPhone plusses in landscape mode (like mini-iPads with the master and detail both showing). But I need to hide/remove those buttons in the detail view for the plus models.

So, how do I identify in code the mega iPhones that act like mini-iPads in landscape mode with splitviewcontrollers?

Answered by Claude31 in 709993022

I used sizeClass information to detect it, as described in the link below.

enum DeviceTraitStatus {
    // iPad and others: Width: Regular, Height: Regular
    case wR
    case wC
    case hR
    case hC
    case wRhR
    ///Any IPHONE Portrait Width: Compact, Height: Regular
    case wChR
    ///IPHONE Plus/Max Landscape Width: Regular, Height: Compact
    case wRhC
    ///IPHONE landscape Width: Compact, Height: Compact
    case wChC

    static var current:DeviceTraitStatus {

        switch (UIScreen.main.traitCollection.horizontalSizeClass, UIScreen.main.traitCollection.verticalSizeClass){

        case (UIUserInterfaceSizeClass.regular, UIUserInterfaceSizeClass.unspecified):
            return .wR
        case (UIUserInterfaceSizeClass.compact, UIUserInterfaceSizeClass.unspecified):
            return .wC
        case (UIUserInterfaceSizeClass.unspecified, UIUserInterfaceSizeClass.regular):
            return .hR
        case (UIUserInterfaceSizeClass.unspecified, UIUserInterfaceSizeClass.compact):
            return .hC

        case (UIUserInterfaceSizeClass.regular, UIUserInterfaceSizeClass.regular):
            return .wRhR
        case (UIUserInterfaceSizeClass.compact, UIUserInterfaceSizeClass.regular):
            return .wChR
        case (UIUserInterfaceSizeClass.regular, UIUserInterfaceSizeClass.compact):
            return .wRhC
        case (UIUserInterfaceSizeClass.compact, UIUserInterfaceSizeClass.compact):
            return .wChC
        default:
            return .wChR
        }
    }
}

The important case for you is:

case wChR

Get details here:

https://stackoverflow.com/questions/29528661/ios-detect-current-size-classes-on-viewdidload

Accepted Answer

I used sizeClass information to detect it, as described in the link below.

enum DeviceTraitStatus {
    // iPad and others: Width: Regular, Height: Regular
    case wR
    case wC
    case hR
    case hC
    case wRhR
    ///Any IPHONE Portrait Width: Compact, Height: Regular
    case wChR
    ///IPHONE Plus/Max Landscape Width: Regular, Height: Compact
    case wRhC
    ///IPHONE landscape Width: Compact, Height: Compact
    case wChC

    static var current:DeviceTraitStatus {

        switch (UIScreen.main.traitCollection.horizontalSizeClass, UIScreen.main.traitCollection.verticalSizeClass){

        case (UIUserInterfaceSizeClass.regular, UIUserInterfaceSizeClass.unspecified):
            return .wR
        case (UIUserInterfaceSizeClass.compact, UIUserInterfaceSizeClass.unspecified):
            return .wC
        case (UIUserInterfaceSizeClass.unspecified, UIUserInterfaceSizeClass.regular):
            return .hR
        case (UIUserInterfaceSizeClass.unspecified, UIUserInterfaceSizeClass.compact):
            return .hC

        case (UIUserInterfaceSizeClass.regular, UIUserInterfaceSizeClass.regular):
            return .wRhR
        case (UIUserInterfaceSizeClass.compact, UIUserInterfaceSizeClass.regular):
            return .wChR
        case (UIUserInterfaceSizeClass.regular, UIUserInterfaceSizeClass.compact):
            return .wRhC
        case (UIUserInterfaceSizeClass.compact, UIUserInterfaceSizeClass.compact):
            return .wChC
        default:
            return .wChR
        }
    }
}

The important case for you is:

case wChR

Get details here:

https://stackoverflow.com/questions/29528661/ios-detect-current-size-classes-on-viewdidload

How to identify iPhone Plusses that mimic iPads with SplitView Controllers?
 
 
Q