I have a base UIViewController called BaseController and it is invoked via a segue in my storyboard. Now I have two subclasses of this baseController - Subclass1 and Subclass2. I want to invoke SubBaseController1 or SubBaseController2 depending on the target when the segue gets triggered. How do I instantiate SubBaseController1 in target1 or SubBaseController2 in target 2 when the segue gets invoked?
Asked
Active
Viewed 42 times
0
PGDev
- 23,751
- 6
- 34
- 88
Deepak Sharma
- 5,577
- 7
- 55
- 131
-
Does this answer your question? [IOS - How to segue programmatically using swift](https://stackoverflow.com/questions/27604192/ios-how-to-segue-programmatically-using-swift) – Maciej Gad Nov 05 '19 at 08:03
1 Answers
0
You can do it in two way:
- Use two different segues. Add identifiers for both, similar to this picture
and then call this code to open the correct screen
performSegue(withIdentifier: "segue1", sender: nil)
- Don't create any segue, but add
storyboardIdto view controller, similar to this:
and use this code to init and show view controller:
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
let viewController1 = storyboard.instantiateViewController(identifier: "viewController1")
present(viewController1, animated: true)
I will recommend the second way as it gives you more control over the displaying process.
Maciej Gad
- 1,701
- 16
- 21