FUIModalCheckoutViewController
open class FUIModalCheckoutViewController: UIViewController
A view controller to be presented as a modal form sheet. The view controller shows a CheckoutIndicatorView
, which is drawn based on the set displayState
.
Initialization
Programmatically:
let viewController = FUIModalCheckoutViewController.instantiateViewController()
viewController.title = My Modal Checkout Title
viewController.text = Processing
self.present(viewController, animated: false)
Inside a Storyboard:
- Drag and drop a
Storyboard Reference
component to Interface Builder’s canvas. - Enter
FUIModalCheckout
as Storyboard andcom.sap.cp.sdk.ios.SAPFiori
as Bundle. - Create a segue between your Button and the storyboard reference and select
Present Modally
as action. - Select the segue and in Interface Builder give it an identifier (e.g.
showModalCheckout
). - In your view controller override
prepare(for segue: UIStoryboardSegue, sender: Any?)
- From the segue get the destination and cast it to
FUIModalCheckoutViewController
. - You can then register a delegate or change the controller’s display state.
Usage
// override prepareForSegue
-method and retrieve view controller from segue destination.
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
guard let showModalCheckoutSegue = segue.identifier, showModalCheckoutSegue == showModalCheckout
else {
return
}
// keep a (weak) reference to modalCheckoutViewController
self.modalCheckoutViewController = segue.destination as? FUIModalCheckoutViewController
self.modalCheckoutViewController?.delegate = self
}
// implementation of FUIModalCheckoutViewControllerDelegate callback.
public func dismissController(_ controller: FUIModalCheckoutViewController) {
//stop any loading or checkout! User cancelled it...
//... or set state to completed.
self.modalCheckoutViewController?.changeDisplayState(to: .completed) {
self.modalCheckoutViewController?.dismiss(animated: true)
}
}
// While the FUIModalCheckoutViewController is shown, you might want to change the display state according to
// your loading / checkout progress. E.g. when you are done, you can change the state to .completed
.
self.modalCheckoutViewController?.displayState = .completed
self.modalCheckoutViewController?.text = Completed
-
Sets the delegate of this FUIModalCheckoutViewController. If a delegate is set it is responsible for dismissing the view controller. If no delegate it set the view controller will dismiss itself, when the Done button is pressed.
Declaration
Swift
public weak var delegate: FUIModalCheckoutViewControllerDelegate?
-
This view controller’s navigation bar.
Declaration
Swift
@IBOutlet public var navigationBar: UINavigationBar!
-
The navigation Bar Title Item
Declaration
Swift
@IBOutlet public var navigationBarTitleItem: UINavigationItem!
-
UIBarButtonItem of the view controller, representing the Done-Button.
Declaration
Swift
@IBOutlet public var leftBarButtonItem: UIBarButtonItem!
-
UILabel below the checkout indicator view, to indicate the current displayState using a text label.
Declaration
Swift
@IBOutlet public var textLabel: UILabel!
-
The title shown at the top of this controller.
Declaration
Swift
open override var title: String?
-
The text displayed underneath the checkout indicator.
Declaration
Swift
public var text: String?
-
The current
DisplayState
of the checkout indicator view controller. The initial value isDisplayState.processing
.Declaration
Swift
public var displayState: FUICheckoutIndicatorView.DisplayState
-
Instantiates a new view controller instance from storyboard.
Returns
the new instance loaded from storyboard.Declaration
Swift
open class func instantiateViewController() -> FUIModalCheckoutViewController
Return Value
the new instance loaded from storyboard.
-
Changes the display state of this control. Use this to switch between different graphical representations of this control.
Parameter
Parameter newState: the new display state to switch to.Parameter
Parameter completion: completion handler that will be called, once the display state change is done.Declaration
Swift
public func changeDisplayState(to newState: FUICheckoutIndicatorView.DisplayState, completion: (()->Void)? = nil)
Parameters
newState
the new display state to switch to.
completion
completion handler that will be called, once the display state change is done.