PhotoEditViewController

@available(iOS 9.0, *)
@objcMembers
@objc(PESDKPhotoEditViewController)
open class PhotoEditViewController : ViewController

A PhotoEditViewController is the main starting point for the SDK. It displays the rendered photo and a menu. It can present PhotoEditToolController objects and react to changes. It can be presented on its own (thus displaying a toolbar for navigation at the bottom) or be embedded into a UINavigationController (thus using the navigation controller’s navigation bar for navigation).

  • Creates a new PhotoEditViewController for the given photo data, the given configuration, menu items and photo edit model.

    Declaration

    Swift

    @available(*, deprecated, message: "Use `init(photoAsset:configuration:menuItems:photoEditModel:﹚` instead.")
    public convenience init?(data: Data, configuration: Configuration = Configuration(), menuItems: [PhotoEditMenuItem] = PhotoEditMenuItem.defaultItems, photoEditModel: PhotoEditModel = PhotoEditModel())

    Parameters

    data

    The data object should represent an image either in JPG or PNG format. Use this initializer to preserve EXIF data.

    configuration

    The configuration options to apply.

    menuItems

    The menu items to display.

    photoEditModel

    The initial photo edit model to apply to the photo.

  • Creates a new PhotoEditViewController for the given UIImage, the given configuration, menu items and photo edit model.

    Declaration

    Swift

    @available(*, deprecated, message: "Use `init(photoAsset:configuration:menuItems:photoEditModel:﹚` instead.")
    public convenience init(photo: UIImage, configuration: Configuration = Configuration(), menuItems: [PhotoEditMenuItem] = PhotoEditMenuItem.defaultItems, photoEditModel: PhotoEditModel = PhotoEditModel())

    Parameters

    photo

    The photo to edit. Passing an UIImage will not preserve EXIF data.

    configuration

    The configuration options to apply.

    menuItems

    The menu items to display.

    photoEditModel

    The initial photo edit model to apply to the photo.

  • Creates a new PhotoEditViewController for the given UIImage, the given Data if not nil, the given configuration, menu items and photo edit model. If no Data object is passed, the UIImage object will be used and no EXIF data is preserved. If a Data object is passed however, the passed UIImage will only be used for the preview, but the actual data will be used from the Data object, thus preserving EXIF data.

    Declaration

    Swift

    @available(*, deprecated, message: "Use `init(photoAsset:configuration:menuItems:photoEditModel:﹚` instead.")
    public convenience init(photo: UIImage, data: Data?, configuration: Configuration, menuItems: [PhotoEditMenuItem], photoEditModel: PhotoEditModel)

    Parameters

    photo

    The photo to edit.

    data

    The photo as a Data object. The object should represent an image either in JPG or PNG format.

    configuration

    The configuration options to apply.

    menuItems

    The menu items to display.

    photoEditModel

    The initial photo edit model to apply to the photo.

  • Creates a new PhotoEditViewController for the given Photo, the given configuration, menu items and photo edit model.

    Declaration

    Swift

    public required init(photoAsset: Photo, configuration: Configuration = Configuration(), menuItems: [PhotoEditMenuItem] = PhotoEditMenuItem.defaultItems, photoEditModel: PhotoEditModel = PhotoEditModel())

    Parameters

    photoAsset

    The photo to edit.

    configuration

    The configuration options to apply.

    menuItems

    The menu items to display.

    photoEditModel

    The initial photo edit model to apply to the photo.

  • The undo button that is displayed in the editor.

    Declaration

    Swift

    open private(set) var undoButton: OverlayButton?
  • The redo button that is displayed in the editor.

    Declaration

    Swift

    open private(set) var redoButton: OverlayButton?
  • All overlay buttons that are displayed in the editor. This includes undoButton and redoButtton.

    Declaration

    Swift

    open private(set) var overlayButtons: [OverlayButton]
  • Applies all changes to the high resolution image and calls the delegate methods.

    Declaration

    Swift

    open func renderHighResolutionImage()
  • The tools that are currently on the stack.

    Declaration

    Swift

    open private(set) var viewControllers: [PhotoEditToolController]
  • Pushes a new tool onto the tool stack and presents its view.

    Declaration

    Swift

    @objc(pushViewController:animated:completion:)
    open func push(_ viewController: PhotoEditToolController, animated: Bool, completion: (() -> Void)? = nil)

    Parameters

    viewController

    The tool controller to present.

    animated

    Whether to show this tool animated or not.

    completion

    A closure that is executed after the presentation animation is finished.

  • Pops the top view controller from the stack and removes its view.

    Declaration

    Swift

    @discardableResult
    @objc(popViewControllerAnimated:completion:)
    open func pop(animated: Bool, completion: (() -> Void)? = nil) -> PhotoEditToolController?

    Parameters

    animated

    Whether to animate the transition or not.

    completion

    A closure that is executed after the dismissal animation.

    Return Value

    The tool that was popped from the stack, if any.

  • Creates a new PhotoEditViewController for the given photo data and the given configuration, using the default menu items and photo edit model.

    Declaration

    Swift

    @available(*, deprecated, message: "Use `init(photoAsset:configuration:﹚` instead.")
    public convenience init?(data: Data, configuration: Configuration)

    Parameters

    data

    The data object should represent an image either in JPG or PNG format. Use this initializer to preserve EXIF data.

    configuration

    The configuration options to apply.

  • Creates a new PhotoEditViewController for the given photo data, the given configuration, menu items and photo edit model.

    Attention

    This initializer should only be used with Objective-C.

    Declaration

    Swift

    @available(*, deprecated, message: "Use `init(photoAsset:configuration:menuItems:photoEditModel:﹚` instead.")
    public convenience init?(data: Data, configuration: Configuration, menuItems: [_ObjCPhotoEditMenuItem], photoEditModel: _ObjCPhotoEditModel)

    Parameters

    data

    The data object should represent an image either in JPG or PNG format. Use this initializer to preserve EXIF data.

    configuration

    The configuration options to apply.

    menuItems

    The menu items to display.

    photoEditModel

    The initial photo edit model to apply to the photo.

  • Creates a new PhotoEditViewController for the given UIImage and the given configuration, using the default menu items and photo edit model.

    Declaration

    Swift

    @available(*, deprecated, message: "Use `init(photoAsset:configuration:﹚` instead.")
    public convenience init(photo: UIImage, configuration: Configuration)

    Parameters

    photo

    The photo to edit. Passing an UIImage will not preserve EXIF data.

    configuration

    The configuration options to apply.

  • Creates a new PhotoEditViewController for the given UIImage, the given configuration, menu items and photo edit model.

    Attention

    This initializer should only be used with Objective-C.

    Declaration

    Swift

    @available(*, deprecated, message: "Use `init(photoAsset:configuration:menuItems:photoEditModel:﹚` instead.")
    public convenience init(photo: UIImage, configuration: Configuration, menuItems: [_ObjCPhotoEditMenuItem], photoEditModel: _ObjCPhotoEditModel)

    Parameters

    photo

    The photo to edit. Passing an UIImage will not preserve EXIF data.

    configuration

    The configuration options to apply.

    menuItems

    The menu items to display.

    photoEditModel

    The initial photo edit model to apply to the photo.

  • Creates a new PhotoEditViewController for the given Photo and the given configuration, using the default menu items and photo edit model.

    Declaration

    Swift

    public convenience init(photoAsset: Photo, configuration: Configuration)

    Parameters

    photoAsset

    The photo to edit.

    configuration

    The configuration options to apply.

  • Creates a new PhotoEditViewController for the given Photo, the given configuration, menu items and photo edit model.

    Attention

    This initializer should only be used with Objective-C.

    Declaration

    Swift

    public convenience init(photoAsset: Photo, configuration: Configuration, menuItems: [_ObjCPhotoEditMenuItem], photoEditModel: _ObjCPhotoEditModel)

    Parameters

    photoAsset

    The photo to edit.

    configuration

    The configuration options to apply.

    menuItems

    The menu items to display.

    photoEditModel

    The initial photo edit model to apply to the photo.