I have heavily integrated Speechkit
If that's the case, I think creating two separated viewControllers might be easier -or more logical-, you can decide which one should viewed based on the #available(iOS 10.0, *)
Let's assume that you will present the ViewController2
based on tapping a button in another ViewController (In the code snippet, I called it PreviousViewController
):
class PreviousViewController: UIViewController {
//...
@IBAction func presentApproriateScene(sender: AnyObject) {
if #available(iOS 10.0, *) {
// present the ViewController that heavily integrated with Speechkit
// maybe by perfroming a segue:
performSegueWithIdentifier("segue01", sender: self)
// or maybe by getting the it from the storyboard
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc1 = storyboard.instantiateViewControllerWithIdentifier("vc1")
presentViewController(vc1, animated: true, completion: nil)
} else {
// present the ViewController that does not suupport Speechkit
// maybe by perfroming a segue:
performSegueWithIdentifier("segue02", sender: self)
// or maybe by getting the it from the storyboard
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc2 = storyboard.instantiateViewControllerWithIdentifier("vc2")
presentViewController(vc2, animated: true, completion: nil)
}
}
//...
}
Also, you can use it when declaring variables:
class ViewController: UIViewController {
//...
if #available(iOS 10.0, *) {
private let speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))!
} else {
// ...
}
//...
}
But again, as you mentioned, if you have "heavy" integration with Speechkit, I assume that making two Viewcontrollers would be more logical.
Hope this helped.