GenericViewController
The GenericViewController is a UIViewController that conforms to the HaapiUIViewController protocol and is capable of displaying a GenericModel which contains one of any combination of an optional SelectorModel and an optional FormModel.
UI structure
The root structure is composed of a container StackView, this UIViewcontroller is responsible for dynamically loading the SelectorModel UIViewController and/or the FormModel UIViewController that represent the content of the GenericModel. It is also responsible for forwarding the content updates to the contained views.
| Name | Description | 
|---|---|
| selectorViewController | The ViewControllerResolver provided implementation for the UI that can represent a SelectorModel. | 
| formViewController | The ViewControllerResolver provided implementation for the UI that can represent a FormModel. | 
Subclassing
When subclassing and registering your new view controller
@available(iOS 14.0, *)
class CustomGenericViewController: GenericViewController {
    override func preSubmit(
        interactionActionModel: any InteractionActionModel,
        parameters: [String : Any],
        closure: (Bool, [String : Any]) -> Void
    ) {
        // Your custom implementation
        closure(true, parameters)
    }
    
    // ...
}
// Registering your custom view controller to be used when displaying a GenericModel
HaapiUIKitApplicationBuilder(haapiUIKitConfiguration: haapiUIKitConfiguration)
  .setViewControllerFactoryRegistry(registry: ViewControllerFactoryRegistry().registerViewControllerFactoryGenericModel(factory: { model, style, commonStyle in
      CustomGenericViewController(model, style: style, commonStyle: commonStyle)
  }))
  .build()