FUIAttachmentsViewController

open class FUIAttachmentsViewController : UIViewController, QLPreviewControllerDataSource, QLPreviewControllerDelegate

The FUIAttachmentsViewController manages the presentation of a collection of attachment thumbnails, and previews of specific files.

Configuration

Developers should implement the FUIAttachmentsViewControllerDataSource and FUIAttachmentsViewControllerDelegate, to supply content to the controller, and handle events.

Attachment Actions

The controller also supports presentation of an Add Attachment action sheet, which displays a list of FUIAttachmentAction options. Attachment actions are typically used for acquiring (adding) attachments. Default FUIAttachmentAction implementations are provided, for obtaining data from the camera, or photo albums. Developers should add FUIAttachmentAction instances to the controller, using addAttachmentAction(action:).

Presenting Attachment Previews

The FUIAttachmentsViewController uses a native QLPreviewController to present file previews, when the user taps on an attachment icon. The QLPreviewController requires a valid file URL, and will request the URL for a selected attachment, in the FUIAttachmentsViewControllerDataSource urlForAttachmentAtIndex: method. If the developer returns nil, or, if the QLPreviewController cannot handle the URL provided, then the FUIAttachmentsViewControllerDelegate couldNotPresentAttachmentAtIndex: method will be invoked. The developer should handle the presentation for these cases, using a custom view controller, or other presentation framework.

Theming

Supported style classes

fdlFUIAttachmentsViewController
fdlFUIAttachmentsViewController_alertActionTitle
  • Declaration

    Swift

    open weak var delegate: FUIAttachmentsViewControllerDelegate?
  • Declaration

    Swift

    open weak var dataSource: FUIAttachmentsViewControllerDataSource?
  • Indicates if user can add attachment or not. If this is true, there will be a + button shown. When user tapped that button, it will bring up the Add Attachment pop-up for user to select additional attachment. Otherwise, the + button will not be shown. The default is true.

    Declaration

    Swift

    public var isEditable: Bool { get set }
  • This property indicates the maximum number of attachments. The Add button will not be shown if the number of attachments reached limit in the editable mode. There is no limit when this value is less or equal to 0. The default value is 0.

    Declaration

    Swift

    open var maxItems: Int { get set }
  • Set this property to customize the title for this attachment cell. If this property is not set, the default title displays. The default title format is Attachment (%d) where %d is the number of attachments already selected.

    Declaration

    Swift

    public var customAttachmentsTitleFormat: String?
  • The customized string to be displayed for canceling the Add Attachment actions. The default is Cancel.

    Declaration

    Swift

    public var customCancelString: String?
  • The customized pop up title string when user tapped Add Attachment button. The default string is Add Attachment

    Declaration

    Swift

    @available(*, deprecated, message: "This property is kept for backwards-compatibility, but has no effect on the view")
    public var customPopupTitleString: String?
  • Instantiate an FUIAttachmentsFormViewController.

    Declaration

    Swift

    open class func instantiateViewController() -> FUIAttachmentsViewController

    Return Value

    An instance of an FUIAttachmentsFormViewController loaded from storyboard.

  • Gets the number of actions in the action list.

    Declaration

    Swift

    open func numberOfAttachmentActions() -> Int

    Return Value

    The number of actions in the action list.

  • Add an FUIAttachmentAction to action list.

    Declaration

    Swift

    public func addAttachmentAction(_ action: FUIAttachmentAction)
  • Remove an FUIAttachmentAction in action list.

    Declaration

    Swift

    public func removeAttachmentAction(at index: Int)

    Parameters

    index

    The position of the action to be removed.

  • Removes all registered attachment type actions.

    Declaration

    Swift

    public func removeAllAttachmentActions()
  • Reloads data in the view

    Declaration

    Swift

    public func reloadData()