2

I am curious: is there a way to set an iOS 7 app to run with the old fashion iOS 6 visual appearance? I am aware of the UIAppearance protocol but setting the appearance for each individual element seems to be a bit of hassle.

shanet
  • 7,246
  • 3
  • 34
  • 46
Craig Zheng
  • 443
  • 1
  • 5
  • 17

3 Answers3

6

Update: It is no longer possible to upload apps targeting the iOS6 SDK.


Short answer: Compile with SDK6, while it is still possible. Eventually, Apple will deny this, however.


If you are feeling adventurous, try: [[NSUserDefaults standardUserDefaults] registerDefaults:@{ @"UIUseLegacyUI": @YES }];

(Don't submit your apps with this, however.)

Léo Natan
  • 56,823
  • 9
  • 150
  • 195
  • Compiling with SDK6 is half true. If you'll use XCode 5 and compile with SDK6 you'll still get the iOS 7 look. You can check the link in my answer. – Segev Sep 26 '13 at 06:07
  • 1
    Your comment is incorrect. If you use SDK6 from Xcode 4.6, your app will be linked with the old SDK and will receive the legacy look. – Léo Natan Sep 26 '13 at 06:09
  • I don't know if you are answering out of logic or you've actually tried it. I have and it doesn't work. Compiling my app in XCode 5 + selecting Base SDK 6.1 will still result iOS 7 look, just more buggy. – Segev Sep 26 '13 at 06:13
  • I've tested it on the simulator for sure. I think that on a device too but I'm not sure. – Segev Sep 26 '13 at 06:17
  • I unearthed my old macbook with xCode 4 and iOS 6 SDK, but I found that it can't run the app on iOS 7 simulator, and I don't have an iOS 7 device at the moment, so unfortunately I can't verify your answer myself. – Craig Zheng Sep 26 '13 at 06:27
0

I've tested an old app that I submitted to app store 2 years ago that compiled with iOS 6, before they introduced iOS7. I can confirm that the answer I picked was not entirely correct.

When running on iOS 7 device, the app I made for iOS 6 was a mix of both - 50% looking like iOS 6, 50% like iOS 7. It was compiled with xCode 4.3 or something, with base SDK being iOS 6.

For example, the toolbar and tab bar look like iOS 6, while the alert view looks like iOS 7.

The app that I made was called Social Comics in case you want to have a look yourselves. I made this app not long after I graduated and haven't update it for 2 years so don't laugh if it looked dated...

Craig Zheng
  • 443
  • 1
  • 5
  • 17
  • The problem is, Apple is emulating iOS6 look and feel internally using iOS7 classes as best they could. If you have iOS7 on the device, you have iOS7. – Léo Natan Mar 14 '14 at 15:04
-2

Compiling with SDK6 in XCode 5 won't help you much. You'll still get the iOS 7 look if you won't customize it your self to look like iOS6. Check my answer here: https://stackoverflow.com/a/18954491/1578927

Community
  • 1
  • 1
Segev
  • 19,035
  • 12
  • 80
  • 152
  • 2
    That's incorrect. This behaviour only happens when compiling against the base SDK. If you take iOS 6 SDK from Xcode 4.6 and compile against that, even with Xcode 5, you will get the legacy look. – Léo Natan Sep 26 '13 at 06:06
  • I disagree. I tried using the old SDK more then once. Even if you'll copy Xcode 4.6.3 Base SDK to XCode 5 you WON'T get the legacy look. There's a lot of trials and errors in the link above. – Segev Sep 26 '13 at 06:10
  • I've tested on a device with iOS6 and it works. Not sure about simulator. – Léo Natan Sep 26 '13 at 06:12
  • I've retested 2 of my apps on the device against the 6.1 SDK on XCode 5. One of them stuck on splash screen, the other one would crash with no error. On the simulator I still got the iOS 7 look. – Segev Sep 30 '13 at 19:29