Reputation: 605
I am trying to create a class that is similar in functionality to the UITabBarController
, but with some fundamentally different functionality. It is called a dropdownViewController and has a primary content view with a UITabBar
-like interface at the top of the screen that allows for other UIViewControllers to be modally presented and dismissed over this primary viewController.
I would like this class to be able to be set up using the storyboard to some extent, and I have created a custom Segue that connects my dropDownViewController
class with each of its child viewControllers.
My current solution is to assign identifiers to each of the Segues that are then stored in array within the dropdownViewController. I can call the segues programmatically using the performSegueWithIdentifer:
method, but this solution isn't as flexible or intuitive as I would like to to be.
Right now, all the custom Segues that I have setup are connected to the "manual" triggered segue in the storyboard connections panel for the dropdownViewController
. (I would put screenshots but this is my first post)
However, I want to mimic the functionality of the UITabBarController
class, which has an alternate triggered segue in the storyboard connections panel called viewControllers
that each of its child views are assigned to. Unless there are some compile-time macros handling these story board interactions, I assume that the UITabBarController
uses these connections to determine what it's view controllers are. However, I can't figure out how to setup this functionality with my own class
After searching around for a solution, it seems likely that this is functionality Apple kept for its own use and is limited to their own classes as a feature in Xcode, but if anyone has solutions or ideas it would be greatly appreciated.
Upvotes: 0
Views: 166
Reputation: 104082
I haven't tried this, but I think you should be able to do it with your own custom segues. In the perform
method, you would just add the destination view controller to the source view controller's (DropDownViewController) array of view controllers. In the DropDownViewController's viewDidLoad method (or maybe in an initializer or awakeFromNib, not sure which is most appropriate), you would execute all these segues so that they run right after the controller is loaded like is done for a tab bar controller.
Upvotes: 0