How can you support features of iOS6 in an app with a Minimal Deployment Target
set to iOS 5.0?
For example, if a user has iOS 5 he will see one UIActionSheet
, if the user has iOS 6 he will see a different UIActionSheet
for iOS 6? How do you do this?
I have Xcode 4.5 and want an app running on iOS 5.
You should always prefer detecting available methods/feature rather then iOS versions and then assuming a method is available.
See Apple documentation.
For example, in iOS 5 to display a modal view controller we would do something like this:
In iOS 6, the
presentModalViewController:animated:
method ofUIViewController
is Deprecated, you should usepresentViewController:animated:completion:
in iOS 6, but how do you know when to use what?You could detect iOS version and have an if statement dictate if you use the former or latter but, this is fragile, you'll make a mistake, maybe a newer OS in the future will have a new way to do this.
The correct way to handle this is:
You could even argue that you should be more strict and do something like:
I'm unsure about your
UIActionSheet
example, as far as I'm aware this is the same on iOS 5 and 6. Maybe you are thinking ofUIActivityViewController
for sharing and you might like to fallback to aUIActionSheet
if you're on iOS 5, so you might to check a class is available, see here how to do so.