UIApplicationDelegate { var childFlowController: FlowController? var delegate: FlowControllerDelegate? var parentViewController: UIViewController? var currentViewController: UIViewController? } class NavigationFlowController: FlowController, UINavigationControllerDelegate { var navigationController: UINavigationController! } FlowController NavigationFlowController class TabBarFlowController: FlowController, UITabBarControllerDelegate { var tabBarController: UITabBarController! } TabBarFlowController