PROTOCOL
HaapiUIViewController
public protocol HaapiUIViewController where Self: UIViewController
The methods that an UIViewController adopts to manage UIModels and haapi flow related to the UI.
This interface is required to be implemented by UIViewControllers that are used to present user interfaces during the authentication flow.
Use the methods of this protocol to manage the following features:
- Handling the loading process.
 - Handling the problem model.
 - Handling the content info message models.
 - Handling the form model.
 
Properties
haapiFlowViewControllerDelegate
var haapiFlowViewControllerDelegate: HaapiFlowViewControllerDelegate?
The delegate responsible to intermediate interactions from the UIViewController instance to the parent HaapiFlowViewController.
uiStylableThemeDelegate
var uiStylableThemeDelegate: UIStylableThemeDelegate?
The delegate responsible for returning theme defined values
Methods
stopLoading()
func stopLoading()
Stops a loading process.
hasLoading()
func hasLoading() -> Bool
Returns a Bool indicating if the view controller has a loading element.
handleProblemModel(_:)
func handleProblemModel(_ problemModel: ProblemModel) -> Bool
Returns a Bool indicating if the UIProblem is handled or not.
- Parameters:
- problemModel: An UIProblem that is mapped on a 
ProblemRepresentation. 
 - problemModel: An UIProblem that is mapped on a 
 - Returns: A Bool indicating if the problem model is handled.
 
Parameters
| Name | Description | 
|---|---|
| problemModel | An UIProblem that is mapped on a ProblemRepresentation. | 
handleInfoMessageModels(_:)
func handleInfoMessageModels(_ infoMessageModels: [InfoMessageModel])
Handles an array of InfoMessageModel.
- Parameters:
- infoMessageModels: An array of 
InfoMessageModel. 
 - infoMessageModels: An array of 
 
Parameters
| Name | Description | 
|---|---|
| infoMessageModels | An array of InfoMessageModel. | 
handleLinkItemModels(_:)
func handleLinkItemModels(_ linkItemModels: [LinkItemModel])
Handles an array of LinkItemModel.
- Parameters:
- linkItemModels: An array of 
LinkItemModel. 
 - linkItemModels: An array of 
 
Parameters
| Name | Description | 
|---|---|
| linkItemModels | An array of LinkItemModel. | 
handleFormModel(_:)
func handleFormModel(_ formModel: FormModel) -> Bool
Returns a Bool indicating if the FormModel is handled or not.
- Parameters:
- formModel: A 
FormModel. 
 - formModel: A 
 - Returns: A Bool indicating if the problem model is handled.
 
Parameters
| Name | Description | 
|---|---|
| formModel | A FormModel. | 
preSubmit(interactionActionModel:parameters:closure:)
func preSubmit(interactionActionModel: InteractionActionModel,
               parameters: [String: Any],
               closure: @escaping (Bool, [String: Any]) -> Void)
Before HaapiFlowViewControllerDelegate.submit is invoked, this function is invoked and gives the possibility to introspect the interactionActionModel and parameters. To prevent the submission, the closure has to be invoked with false.
- Parameters:
- interactionActionModel: The interaction action model to be submitted.
 - parameters: Parameters to be sent with the form action model.
 - closure: A closure of 
Booland[String: Any]. If it is set to true, then the submission continues. Otherwise, no submission are made. 
 
Parameters
| Name | Description | 
|---|---|
| interactionActionModel | The interaction action model to be submitted. | 
| parameters | Parameters to be sent with the form action model. | 
| closure | A closure of Bool and [String: Any]. If it is set to true, then the submission continues. Otherwise, no submission are made. | 
preSelect(selectorItemModel:closure:)
func preSelect(selectorItemModel: SelectorItemInteractionActionModel, closure: @escaping (Bool) -> Void)
Before HaapiFlowViewControllerDelegate.select is invoked, this function is invoked and gives the possibility to introspect the selectorItemModel. To prevent selecting the selectorItemModel, the closure has to be invoked with false.
- Parameters:
- selectorItemModel: The selector item model that contains the action to trigger.
 - closure: A closure of 
Bool. If it set to true, the selector item model is being selected. Otherwise, no selector item models are selected. 
 
Parameters
| Name | Description | 
|---|---|
| selectorItemModel | The selector item model that contains the action to trigger. | 
| closure | A closure of Bool. If it set to true, the selector item model is being selected. Otherwise, no selector item models are selected. | 
preFollow(linkItemModel:closure:)
func preFollow(linkItemModel: LinkItemModel, closure: @escaping (Bool) -> Void)
Before HaapiFlowViewControllerDelegate.follow is invoked, this function is invoked and gives the possibility to introspect the link. To prevent following the link, the closure has to be invoked with false.
- Parameters:
- linkItemModel: The link item model to be followed.
 - closure: A closure of 
Bool. If it is set to true, the link is being followed. Otherwise, no links are being followed. 
 
Parameters
| Name | Description | 
|---|---|
| linkItemModel | The link item model to be followed. | 
| closure | A closure of Bool. If it is set to true, the link is being followed. Otherwise, no links are being followed. |