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 }
  • Undocumented

    Declaration

    Swift

    public var isEnabled: Bool { get set }
  • This property indicates the modal presentation style for the camera screen. If the developer doesn’t set this value, the default modal presentation style is currentContext.

    Declaration

    Swift

    public var cameraModalPresentationStyle: UIModalPresentationStyle?
  • This property indicates the maximum number of attachments. The “Add” button will not be shown if the number of attachments reaches the limit in the editable mode. There is no limit when this value is less than 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()
  • Use this function to register custom UICollectionViewCell class to this FUIAttachmentsViewController.

    Declaration

    Swift

    public func register(_ attachmentCellClass: AnyClass?, forCellWithReuseIdentifier identifier: String)

    Parameters

    attachmentCellClass

    The class of a cell that you want to use to display the attachment.

    identifier

    The reuse identifier to associate with the specified class.

  • Use this function to dequeue a reusable custom UICollectionViewCell class to display the attachment.

    Declaration

    Swift

    public func dequeueReusableCell(withReuseIdentifier identifier: String, forAttachment index: Int) -> UICollectionViewCell

    Parameters

    identifier

    The reuse identifier for the specified cell.

    index

    The attachment index.

    Return Value

    The corresponding UICollectionViewCell for the identifier.

  • The QLPreviewController to preview the attachments.

    FUIAttachmentsViewController allocates a default QLPreviewController. Developers may set this property to their own customized QLPreviewController if desired.

    Declaration

    Swift

    public var previewController: QLPreviewController { get set }
  • Open the item of the specified attachment at the given index.

    Declaration

    Swift

    public func openAttachmentItem(index: Int)

    Parameters

    index

    The index of the item.