UIViewController
@_spi(FW) extension UIViewController
-
打开控制器。1.如果打开导航栏,则调用present;2.否则如果导航栏存在,则调用push;3.否则调用present
Declaration
Swift
public func fw_open(_ viewController: UIViewController, animated: Bool = true, options: NavigatorOptions = [], completion: (() -> Void)? = nil)
-
关闭控制器,返回是否成功。1.如果导航栏不存在,则调用dismiss;2.否则如果已是导航栏底部,则调用dismiss;3.否则调用pop
Declaration
Swift
@discardableResult public func fw_close(animated: Bool = true, options: NavigatorOptions = [], completion: (() -> Void)? = nil) -> Bool
-
自定义工作流名称,支持二级(“."分隔);默认返回小写类名(去掉ViewController、Controller)
Declaration
Swift
public var fw_workflowName: String { get set }
-
转场动画自定义判断标识,不相等才会启用转场。默认nil启用转场。可重写或者push前设置生效
Declaration
Swift
public var fw_barTransitionIdentifier: AnyHashable? { get set }
-
视图控制器是否禁用全屏返回手势,默认NO
Declaration
Swift
public var fw_fullscreenPopGestureDisabled: Bool { get set }
-
视图控制器全屏手势距离左侧最大距离,默认0,无限制
Declaration
Swift
public var fw_fullscreenPopGestureDistance: CGFloat { get set }
-
状态栏样式,默认preferredStatusBarStyle,设置后才会生效
Declaration
Swift
public var fw_statusBarStyle: UIStatusBarStyle { get set }
-
状态栏是否隐藏,默认prefersStatusBarHidden,设置后才会生效
Declaration
Swift
public var fw_statusBarHidden: Bool { get set }
-
当前导航栏设置,优先级高于style,设置后会在viewWillAppear:自动应用生效
Declaration
Swift
public var fw_navigationBarAppearance: NavigationBarAppearance? { get set }
-
当前导航栏样式,默认default,设置后才会在viewWillAppear:自动应用生效
Declaration
Swift
public var fw_navigationBarStyle: NavigationBarStyle { get set }
-
导航栏是否隐藏,默认isNavigationBarHidden,设置后才会在viewWillAppear:自动应用生效
Declaration
Swift
public var fw_navigationBarHidden: Bool { get set }
-
动态隐藏导航栏,如果当前已经viewWillAppear:时立即执行
Declaration
Swift
public func fw_setNavigationBarHidden(_ hidden: Bool, animated: Bool)
-
是否允许修改导航栏样式,默认未设置时child控制器不能修改
Declaration
Swift
public var fw_allowsBarAppearance: Bool { get set }
-
标签栏是否隐藏,默认为true,立即生效。如果tabBar一直存在,则用tabBar包裹navBar;如果tabBar只存在主界面,则用navBar包裹tabBar
Declaration
Swift
public var fw_tabBarHidden: Bool { get set }
-
工具栏是否隐藏,默认为true。需设置toolbarItems,立即生效
Declaration
Swift
public var fw_toolBarHidden: Bool { get set }
-
动态隐藏工具栏。需设置toolbarItems,立即生效
Declaration
Swift
public func fw_setToolBarHidden(_ hidden: Bool, animated: Bool)
-
设置视图布局Bar延伸类型,None为不延伸(Bar不覆盖视图),Top|Bottom为顶部|底部延伸,All为全部延伸
Declaration
Swift
public var fw_extendedLayoutEdge: UIRectEdge { get set }
-
自适应Bar延伸类型,兼容顶部和底部栏safeArea布局方式,需在viewDidLoad及之后调用生效。开启兼容模式时仅在iOS14及以下生效
Declaration
Swift
public func fw_adjustExtendedLayout(compatible: Bool = false)
-
视图控制器present|dismiss转场。注意会修改transitioningDelegate,且会强引用之;如需weak引用,请直接设置transitioningDelegate
Declaration
Swift
public var fw_modalTransition: AnimatedTransition? { get set }
-
视图控制器push|pop转场,代理导航控制器转场,需在fwNavigationTransition设置后生效
Declaration
Swift
public var fw_viewTransition: AnimatedTransition? { get set }
-
自定义控制器present系统转场(蒙层渐变,内容向上动画),会设置fwModalTransition
Declaration
Swift
@discardableResult public func fw_setPresentTransition(_ presentationBlock: ((PresentationController) -> Void)? = nil) -> AnimatedTransition
-
自定义控制器alert缩放转场(蒙层渐变,内容缩放动画),会设置fwModalTransition
Declaration
Swift
@discardableResult public func fw_setAlertTransition(_ presentationBlock: ((PresentationController) -> Void)? = nil) -> AnimatedTransition
-
自定义控制器fade渐变转场(蒙层和内容渐变动画),会设置fwModalTransition;
Declaration
Swift
@discardableResult public func fw_setFadeTransition(_ presentationBlock: ((PresentationController) -> Void)? = nil) -> AnimatedTransition
-
设置iOS13默认present手势下拉dismiss时的回调block,仅iOS13生效,自动触发,手工dismiss不会触发。会自动设置presentationController.delegate
Declaration
Swift
public var fw_presentationDidDismiss: (() -> Void)? { get set }
-
自定义控制器popover弹出效果(preferredContentSize设置大小),会自动设置modalPresentationStyle和popoverPresentationController.delegate
Declaration
Swift
public func fw_setPopoverPresentation(_ presentationBlock: ((UIPopoverPresentationController) -> Void)?, shouldDismiss: Bool)
-
显示view骨架屏,指定布局代理
Declaration
Swift
public func fw_showSkeleton(delegate: SkeletonViewDelegate?)
-
显示view骨架屏,指定布局句柄
Declaration
Swift
public func fw_showSkeleton(block: ((SkeletonLayout) -> Void)?)
-
显示view骨架屏,默认布局代理为self
Declaration
Swift
public func fw_showSkeleton()
-
隐藏view骨架屏
Declaration
Swift
public func fw_hideSkeleton()
-
是否正在显示view骨架屏
Declaration
Swift
public var fw_hasSkeleton: Bool { get }
-
设置并尝试自动绑定曝光事件统计
Declaration
Swift
public var fw_statisticalExposure: StatisticalEvent? { get set }
-
设置统计曝光事件触发时自定义监听器,默认nil
Declaration
Swift
public var fw_statisticalExposureListener: ((StatisticalEvent) -> Void)? { get set }
-
触发控制器曝光事件统计,仅绑定statisticalExposure后生效
Declaration
Swift
@discardableResult public func fw_statisticalTrackExposure(isFinished: Bool = false, event: StatisticalEvent? = nil) -> Bool
-
检查并更新控制器曝光状态,用于自定义场景
Declaration
Swift
public func fw_statisticalCheckExposure()
-
自定义弹窗插件,未设置时自动从插件池加载
Declaration
Swift
public var fw_alertPlugin: AlertPlugin! { get set }
-
显示错误警告框
Declaration
Swift
public func fw_showAlert( error: Error?, cancel: AttributedStringParameter? = nil, cancelBlock: (() -> Void)? = nil )
Parameters
error
错误对象
cancel
取消按钮标题,默认关闭
cancelBlock
取消按钮事件
-
显示警告框(简单版)
Declaration
Swift
public func fw_showAlert( title: AttributedStringParameter?, message: AttributedStringParameter?, style: AlertStyle = .default, cancel: AttributedStringParameter? = nil, cancelBlock: (() -> Void)? = nil )
Parameters
title
警告框标题
message
警告框消息
style
警告框样式
cancel
取消按钮标题,默认关闭
cancelBlock
取消按钮事件
-
显示警告框(详细版)
Declaration
Swift
public func fw_showAlert( title: AttributedStringParameter?, message: AttributedStringParameter?, style: AlertStyle = .default, cancel: AttributedStringParameter?, actions: [AttributedStringParameter]?, actionBlock: ((Int) -> Void)?, cancelBlock: (() -> Void)? = nil )
Parameters
title
警告框标题
message
警告框消息
style
警告框样式
cancel
取消按钮标题,默认单按钮关闭,多按钮取消
actions
动作按钮标题列表
actionBlock
动作按钮点击事件,参数为索引index
cancelBlock
取消按钮事件
-
显示确认框(简单版)
Declaration
Swift
public func fw_showConfirm( title: AttributedStringParameter?, message: AttributedStringParameter?, confirmBlock: (() -> Void)?, cancelBlock: (() -> Void)? = nil )
Parameters
title
确认框标题
message
确认框消息
confirmBlock
确认按钮事件
cancelBlock
取消按钮事件
-
显示确认框(详细版)
Declaration
Swift
public func fw_showConfirm( title: AttributedStringParameter?, message: AttributedStringParameter?, cancel: AttributedStringParameter?, confirm: AttributedStringParameter?, confirmBlock: (() -> Void)?, cancelBlock: (() -> Void)? = nil )
Parameters
title
确认框标题
message
确认框消息
cancel
取消按钮文字,默认取消
confirm
确认按钮文字,默认确定
confirmBlock
确认按钮事件
cancelBlock
取消按钮事件
-
显示输入框(简单版)
Declaration
Swift
public func fw_showPrompt( title: AttributedStringParameter?, message: AttributedStringParameter?, cancel: AttributedStringParameter? = nil, confirm: AttributedStringParameter? = nil, promptBlock: ((UITextField) -> Void)? = nil, confirmBlock: ((String) -> Void)?, cancelBlock: (() -> Void)? = nil )
Parameters
title
输入框标题
message
输入框消息
cancel
取消按钮文字,默认取消
confirm
确认按钮文字,默认确定
promptBlock
输入框初始化事件,参数为输入框
confirmBlock
确认按钮事件,参数为输入值
cancelBlock
取消按钮事件
-
显示输入框(详细版)
Declaration
Swift
public func fw_showPrompt( title: AttributedStringParameter?, message: AttributedStringParameter?, cancel: AttributedStringParameter? = nil, confirm: AttributedStringParameter? = nil, promptCount: Int, promptBlock: ((UITextField, Int) -> Void)?, confirmBlock: (([String]) -> Void)?, cancelBlock: (() -> Void)? = nil )
Parameters
title
输入框标题
message
输入框消息
cancel
取消按钮文字,默认取消
confirm
确认按钮文字,默认确定
promptCount
输入框数量
promptBlock
输入框初始化事件,参数为输入框和索引index
confirmBlock
确认按钮事件,参数为输入值数组
cancelBlock
取消按钮事件
-
fw_showAlert(title:
message: style: cancel: actions: promptCount: promptBlock: actionBlock: cancelBlock: customBlock: ) 显示弹出框(完整版)
Declaration
Swift
public func fw_showAlert( title: AttributedStringParameter?, message: AttributedStringParameter?, style: AlertStyle = .default, cancel: AttributedStringParameter?, actions: [AttributedStringParameter]?, promptCount: Int = 0, promptBlock: ((UITextField, Int) -> Void)? = nil, actionBlock: (([String], Int) -> Void)?, cancelBlock: (() -> Void)?, customBlock: ((Any) -> Void)? )
Parameters
title
弹出框标题
message
弹出框消息
style
警告框样式
cancel
取消按钮标题,默认Alert单按钮关闭,Alert多按钮或Sheet取消
actions
动作按钮标题列表
promptCount
输入框数量,默认0
promptBlock
输入框初始化事件,参数为输入框和索引index,默认nil
actionBlock
动作按钮点击事件,参数为输入值数组和索引index
cancelBlock
取消按钮事件
customBlock
自定义弹出框事件
-
显示操作表(无动作)
Declaration
Swift
public func fw_showSheet( title: AttributedStringParameter?, message: AttributedStringParameter?, cancel: AttributedStringParameter?, cancelBlock: (() -> Void)? = nil )
Parameters
title
操作表标题
message
操作表消息
cancel
取消按钮标题,默认取消
cancelBlock
取消按钮事件
-
显示操作表(简单版)
Declaration
Swift
public func fw_showSheet( title: AttributedStringParameter?, message: AttributedStringParameter?, actions: [AttributedStringParameter]?, actionBlock: ((Int) -> Void)?, cancelBlock: (() -> Void)? = nil )
Parameters
title
操作表标题
message
操作表消息
actions
动作按钮标题列表
actionBlock
动作按钮点击事件,参数为索引index
cancelBlock
取消按钮事件
-
显示操作表(详细版)
Declaration
Swift
public func fw_showSheet( title: AttributedStringParameter?, message: AttributedStringParameter?, cancel: AttributedStringParameter?, actions: [AttributedStringParameter]?, currentIndex: Int = -1, actionBlock: ((Int) -> Void)?, cancelBlock: (() -> Void)? = nil )
Parameters
title
操作表标题
message
操作表消息
cancel
取消按钮标题,默认取消
actions
动作按钮标题列表
currentIndex
当前选中动作索引,默认-1
actionBlock
动作按钮点击事件,参数为索引index
cancelBlock
取消按钮事件
-
显示操作表(完整版)
Declaration
Swift
public func fw_showSheet( title: AttributedStringParameter?, message: AttributedStringParameter?, cancel: AttributedStringParameter?, actions: [AttributedStringParameter]?, currentIndex: Int = -1, actionBlock: ((Int) -> Void)?, cancelBlock: (() -> Void)?, customBlock: ((Any) -> Void)? )
Parameters
title
操作表标题
message
操作表消息
cancel
取消按钮标题,默认Alert单按钮关闭,Alert多按钮或Sheet取消
actions
动作按钮标题列表
currentIndex
当前选中动作索引,默认-1
actionBlock
动作按钮点击事件,参数为输入值数组和索引index
cancelBlock
取消按钮事件
customBlock
自定义弹出框事件
-
手工隐藏弹出框,完成后回调。当animated为false时如需获取最新控制器等,也需在异步completion中处理
Declaration
Swift
public func fw_hideAlert( animated: Bool, completion: (() -> Void)? = nil )
Parameters
animated
是否执行动画
completion
完成异步回调
-
判断是否正在显示弹出框
Declaration
Swift
public var fw_isShowingAlert: Bool { get }
-
自定义空界面插件,未设置时自动从插件池加载
Declaration
Swift
public var fw_emptyPlugin: EmptyPlugin! { get set }
-
设置空界面外间距,默认zero
Declaration
Swift
public var fw_emptyInsets: UIEdgeInsets { get set }
-
获取正在显示的空界面视图
Declaration
Swift
public var fw_showingEmptyView: UIView? { get }
-
是否显示空界面
Declaration
Swift
public var fw_hasEmptyView: Bool { get }
-
显示空界面加载视图
Declaration
Swift
public func fw_showEmptyLoading()
-
显示错误空界面
Declaration
Swift
public func fw_showEmptyView(error: Error?, action: AttributedStringParameter? = nil, block: ((Any) -> Void)? = nil)
-
显示空界面,指定文本、详细文本、图片和动作按钮
Declaration
Swift
public func fw_showEmptyView(text: AttributedStringParameter? = nil, detail: AttributedStringParameter? = nil, image: UIImage? = nil, action: AttributedStringParameter? = nil, block: ((Any) -> Void)? = nil)
-
显示空界面,指定文本、详细文本、图片、是否显示加载视图和动作按钮
Declaration
Swift
public func fw_showEmptyView(text: AttributedStringParameter?, detail: AttributedStringParameter?, image: UIImage?, loading: Bool, action: AttributedStringParameter?, block: ((Any) -> Void)?, customBlock: ((Any) -> Void)? = nil)
-
显示空界面,指定文本、详细文本、图片、是否显示加载视图和最多两个动作按钮
Declaration
Swift
public func fw_showEmptyView(text: AttributedStringParameter?, detail: AttributedStringParameter?, image: UIImage?, loading: Bool, actions: [AttributedStringParameter]?, block: ((Int, Any) -> Void)?, customBlock: ((Any) -> Void)? = nil)
-
隐藏空界面
Declaration
Swift
public func fw_hideEmptyView()
-
自定义图片选取插件,未设置时自动从插件池加载
Declaration
Swift
public var fw_imagePickerPlugin: ImagePickerPlugin! { get set }
-
从Camera选取单张图片(简单版)
Declaration
Swift
public func fw_showImageCamera(allowsEditing: Bool, completion: @escaping (UIImage?, Bool) -> Void)
Parameters
allowsEditing
是否允许编辑
completion
完成回调,主线程。参数1为图片,2为是否取消
-
从Camera选取单张图片(详细版)
Declaration
Swift
public func fw_showImageCamera(filterType: ImagePickerFilterType, allowsEditing: Bool, customBlock: ((Any) -> Void)? = nil, completion: @escaping (Any?, Any?, Bool) -> Void)
Parameters
filterType
过滤类型,默认0同系统
allowsEditing
是否允许编辑
customBlock
自定义配置句柄,默认nil
completion
完成回调,主线程。参数1为对象(UIImage|PHLivePhoto|NSURL),2为结果信息,3为是否取消
-
从图片库选取单张图片(简单版)
Declaration
Swift
public func fw_showImagePicker(allowsEditing: Bool, completion: @escaping (UIImage?, Bool) -> Void)
Parameters
allowsEditing
是否允许编辑
completion
完成回调,主线程。参数1为图片,2为是否取消
-
从图片库选取多张图片(简单版)
Declaration
Swift
public func fw_showImagePicker(selectionLimit: Int, allowsEditing: Bool, completion: @escaping ([UIImage], [Any], Bool) -> Void)
Parameters
selectionLimit
最大选择数量
allowsEditing
是否允许编辑
completion
完成回调,主线程。参数1为图片数组,2为结果数组,3为是否取消
-
从图片库选取多张图片(详细版)
Declaration
Swift
public func fw_showImagePicker(filterType: ImagePickerFilterType, selectionLimit: Int, allowsEditing: Bool, customBlock: ((Any) -> Void)? = nil, completion: @escaping ([Any], [Any], Bool) -> Void)
Parameters
filterType
过滤类型,默认0同系统
selectionLimit
最大选择数量
allowsEditing
是否允许编辑
customBlock
自定义配置句柄,默认nil
completion
完成回调,主线程。参数1为对象数组(UIImage|PHLivePhoto|NSURL),2位结果数组,3为是否取消
-
自定义图片预览插件,未设置时自动从插件池加载
Declaration
Swift
public var fw_imagePreviewPlugin: ImagePreviewPlugin! { get set }
-
显示图片预览(简单版)
Declaration
Swift
public func fw_showImagePreview(imageURLs: [Any], imageInfos: [Any]? = nil, currentIndex: Int = 0, sourceView: ((Int) -> Any?)? = nil)
Parameters
imageURLs
预览图片列表,支持NSString|UIImage|PHLivePhoto|AVPlayerItem类型
imageInfos
自定义图片信息数组
currentIndex
当前索引,默认0
sourceView
来源视图,可选,支持UIView|NSValue.CGRect,默认nil
-
fw_showImagePreview(imageURLs:
imageInfos: currentIndex: sourceView: placeholderImage: renderBlock: customBlock: ) 显示图片预览(详细版)
Declaration
Swift
public func fw_showImagePreview(imageURLs: [Any], imageInfos: [Any]?, currentIndex: Int, sourceView: ((Int) -> Any?)?, placeholderImage: ((Int) -> UIImage?)?, renderBlock: ((UIView, Int) -> Void)? = nil, customBlock: ((Any) -> Void)? = nil)
Parameters
imageURLs
预览图片列表,支持NSString|UIImage|PHLivePhoto|AVPlayerItem类型
imageInfos
自定义图片信息数组
currentIndex
当前索引,默认0
sourceView
来源视图句柄,支持UIView|NSValue.CGRect,默认nil
placeholderImage
占位图或缩略图句柄,默认nil
renderBlock
自定义渲染句柄,默认nil
customBlock
自定义句柄,默认nil
-
设置吐司是否显示在window上,默认NO,显示到view上
Declaration
Swift
public var fw_toastInWindow: Bool { get set }
-
设置吐司是否显示在祖先视图上,默认NO,显示到view上
Declaration
Swift
public var fw_toastInAncestor: Bool { get set }
-
自定义吐司插件,未设置时自动从插件池加载
Declaration
Swift
public var fw_toastPlugin: ToastPlugin! { get set }
-
设置吐司外间距,默认zero
Declaration
Swift
public var fw_toastInsets: UIEdgeInsets { get set }
-
获取或设置吐司容器视图,默认view
Declaration
Swift
public var fw_toastContainer: UIView! { get set }
-
显示加载吐司,默认需手工隐藏,指定cancelBlock时点击会自动隐藏并调用之,支持String和AttributedString
Declaration
Swift
public func fw_showLoading(text: AttributedStringParameter? = nil, cancelBlock: (() -> Void)? = nil, customBlock: ((Any) -> Void)? = nil)
-
隐藏加载吐司,可指定延迟隐藏从而实现连续的加载效果
Declaration
Swift
public func fw_hideLoading(delayed: Bool = false)
-
获取正在显示的加载吐司视图
Declaration
Swift
public var fw_showingLoadingView: UIView? { get }
-
是否正在显示加载吐司
Declaration
Swift
public var fw_isShowingLoading: Bool { get }
-
显示进度条吐司,默认需手工隐藏,指定cancelBlock时点击会自动隐藏并调用之,支持String和AttributedString
Declaration
Swift
public func fw_showProgress(_ progress: CGFloat, text: AttributedStringParameter? = nil, cancelBlock: (() -> Void)? = nil, customBlock: ((Any) -> Void)? = nil)
-
隐藏进度条吐司
Declaration
Swift
public func fw_hideProgress()
-
获取正在显示的进度条吐司视图
Declaration
Swift
public var fw_showingProgressView: UIView? { get }
-
是否正在显示进度条吐司
Declaration
Swift
public var fw_isShowingProgress: Bool { get }
-
显示错误消息吐司,自动隐藏,自动隐藏完成后回调
Declaration
Swift
public func fw_showMessage(error: Error?, completion: (() -> Void)? = nil)
-
显示指定样式消息吐司,自动隐藏,自动隐藏完成后回调,支持String和AttributedString
Declaration
Swift
public func fw_showMessage(text: AttributedStringParameter?, style: ToastStyle = .default, completion: (() -> Void)? = nil)
-
显示指定样式消息吐司,可设置自动隐藏和允许交互,自动隐藏完成后回调,支持String和AttributedString
Declaration
Swift
public func fw_showMessage(text: AttributedStringParameter?, style: ToastStyle, autoHide: Bool, interactive: Bool, completion: (() -> Void)? = nil, customBlock: ((Any) -> Void)? = nil)
-
隐藏消息吐司
Declaration
Swift
public func fw_hideMessage()
-
获取正在显示的消息吐司视图
Declaration
Swift
public var fw_showingMessageView: UIView? { get }
-
是否正在显示消息吐司
Declaration
Swift
public var fw_isShowingMessage: Bool { get }
-
当前状态栏布局高度,导航栏隐藏时为0,推荐使用
Declaration
Swift
public var fw_statusBarHeight: CGFloat { get }
-
当前导航栏布局高度,隐藏时为0,推荐使用
Declaration
Swift
public var fw_navigationBarHeight: CGFloat { get }
-
当前顶部栏布局高度,导航栏隐藏时为0,推荐使用
Declaration
Swift
public var fw_topBarHeight: CGFloat { get }
-
当前标签栏布局高度,隐藏时为0,推荐使用
Declaration
Swift
public var fw_tabBarHeight: CGFloat { get }
-
当前工具栏布局高度,隐藏时为0,推荐使用
Declaration
Swift
public var fw_toolBarHeight: CGFloat { get }
-
当前底部栏布局高度,包含标签栏和工具栏,隐藏时为0,推荐使用
Declaration
Swift
public var fw_bottomBarHeight: CGFloat { get }
-
快捷设置导航栏标题文字
Declaration
Swift
public var fw_title: String? { get set }
-
设置导航栏返回按钮,支持UIBarButtonItem|NSString|UIImage等,nil时显示系统箭头
Declaration
Swift
public var fw_backBarItem: Any? { get set }
-
设置导航栏左侧按钮,支持UIBarButtonItem|UIImage等,默认事件为关闭当前页面
Declaration
Swift
public var fw_leftBarItem: Any? { get set }
-
设置导航栏右侧按钮,支持UIBarButtonItem|UIImage等,默认事件为关闭当前页面
Declaration
Swift
public var fw_rightBarItem: Any? { get set }
-
快捷设置导航栏左侧按钮。注意自定义left按钮之后,系统返回手势失效
Declaration
Swift
public func fw_setLeftBarItem(_ object: Any?, target: Any, action: Selector)
-
快捷设置导航栏左侧按钮,block事件。注意自定义left按钮之后,系统返回手势失效
Declaration
Swift
public func fw_setLeftBarItem(_ object: Any?, block: @escaping (UIBarButtonItem) -> Void)
-
快捷设置导航栏右侧按钮
Declaration
Swift
public func fw_setRightBarItem(_ object: Any?, target: Any, action: Selector)
-
快捷设置导航栏右侧按钮,block事件
Declaration
Swift
public func fw_setRightBarItem(_ object: Any?, block: @escaping (UIBarButtonItem) -> Void)
-
快捷添加导航栏左侧按钮。注意自定义left按钮之后,系统返回手势失效
Declaration
Swift
public func fw_addLeftBarItem(_ object: Any?, target: Any, action: Selector)
-
快捷添加导航栏左侧按钮,block事件。注意自定义left按钮之后,系统返回手势失效
Declaration
Swift
public func fw_addLeftBarItem(_ object: Any?, block: @escaping (UIBarButtonItem) -> Void)
-
快捷添加导航栏右侧按钮
Declaration
Swift
public func fw_addRightBarItem(_ object: Any?, target: Any, action: Selector)
-
快捷添加导航栏右侧按钮,block事件
Declaration
Swift
public func fw_addRightBarItem(_ object: Any?, block: @escaping (UIBarButtonItem) -> Void)
-
当前生命周期状态,需实现ViewControllerLifecycleObservable或手动添加监听后才有值,默认nil
Declaration
Swift
public internal(set) var fw_lifecycleState: ViewControllerLifecycleState? { get set }
-
添加生命周期变化监听句柄,可携带自定义参数(注意deinit不能访问runtime关联属性),返回监听者observer
Declaration
Swift
@discardableResult public func fw_observeLifecycleState(object: Any? = nil, block: @escaping (UIViewController, ViewControllerLifecycleState, Any?) -> Void) -> NSObjectProtocol
-
移除生命周期监听者,传nil时移除所有
Declaration
Swift
@discardableResult public func fw_unobserveLifecycleState(observer: Any? = nil) -> Bool
-
自定义完成结果对象,默认nil
Declaration
Swift
public var fw_completionResult: Any? { get set }
-
自定义完成句柄,默认nil,dealloc时自动调用,参数为completionResult。支持提前调用,调用后需置为nil
Declaration
Swift
public var fw_completionHandler: ((Any?) -> Void)? { get set }
-
自定义侧滑返回手势VC开关句柄,enablePopProxy启用后生效,仅处理边缘返回手势,优先级低,默认nil
Declaration
Swift
public var fw_allowsPopGesture: (() -> Bool)? { get set }
-
自定义控制器返回VC开关句柄,enablePopProxy启用后生效,统一处理返回按钮点击和边缘返回手势,优先级高,默认nil
Declaration
Swift
public var fw_shouldPopController: (() -> Bool)? { get set }
-
自定义侧滑返回手势VC开关,enablePopProxy启用后生效,仅处理边缘返回手势,优先级低,自动调用fw.allowsPopGesture,默认true
Declaration
Swift
open var allowsPopGesture: Bool { get }
-
自定义控制器返回VC开关,enablePopProxy启用后生效,统一处理返回按钮点击和边缘返回手势,优先级高,自动调用fw.shouldPopController,默认true
Declaration
Swift
open var shouldPopController: Bool { get }
-
判断当前控制器是否是头部控制器。如果是导航栏的第一个控制器或者不含有导航栏,则返回YES
Declaration
Swift
public var fw_isHead: Bool { get }
-
判断当前控制器是否是尾部控制器。如果是导航栏的最后一个控制器或者不含有导航栏,则返回YES
Declaration
Swift
public var fw_isTail: Bool { get }
-
判断当前控制器是否是子控制器。如果父控制器存在,且不是导航栏或标签栏控制器,则返回YES
Declaration
Swift
public var fw_isChild: Bool { get }
-
判断当前控制器是否是present弹出。如果是导航栏的第一个控制器且导航栏是present弹出,也返回YES
Declaration
Swift
public var fw_isPresented: Bool { get }
-
判断当前控制器是否是iOS13+默认pageSheet弹出样式。该样式下导航栏高度等与默认样式不同
Declaration
Swift
public var fw_isPageSheet: Bool { get }
-
视图是否可见,viewWillAppear后为YES,viewDidDisappear后为NO
Declaration
Swift
public var fw_isViewVisible: Bool { get }
-
控制器是否可见,视图可见、尾部控制器、且不含presented控制器时为YES
Declaration
Swift
public var fw_isVisible: Bool { get }
-
获取祖先视图,标签栏存在时为标签栏根视图,导航栏存在时为导航栏根视图,否则为控制器根视图
Declaration
Swift
public var fw_ancestorView: UIView { get }
-
是否已经加载完数据,默认NO,加载数据完成后可标记为YES,可用于第一次加载时显示loading等判断
Declaration
Swift
public var fw_isDataLoaded: Bool { get set }
-
移除子控制器,解决不能触发viewWillAppear等的bug
Declaration
Swift
public func fw_removeChild(_ viewController: UIViewController)
-
添加子控制器到当前视图,解决不能触发viewWillAppear等的bug
Declaration
Swift
public func fw_addChild(_ viewController: UIViewController, layout: ((UIView) -> Void)? = nil)
-
添加子控制器到指定视图,解决不能触发viewWillAppear等的bug
Declaration
Swift
public func fw_addChild(_ viewController: UIViewController, in view: UIView?, layout: ((UIView) -> Void)? = nil)
-
弹出popover控制器
Declaration
Swift
public func fw_presentPopover( _ popover: UIViewController, sourcePoint: CGPoint, size: CGSize? = nil, delegate: (any UIPopoverPresentationControllerDelegate)? = nil, animated: Bool = true, completion: (() -> Void)? = nil )