背景:app升级版本,需要新建项目,移植功能模块。
弹出extension列表,发现什么都没有,找了半天原因,又把之前的流程理了一遍,没发现问题。
如图:
什么app都没有。。。
最后在新建项目里发现了问题,我用的测试手机系统版本是iOS12.0,但是新建的extension APP版本太高了!!!
如图:
意识到这个问题后就没有问题了,把iOS14.0改成12.0运行后成功了。
如图:
==============================================================
1 RPSystemBroadcastPickerView 寻找button。
代码如下:
.h 文件
#import
NS_ASSUME_NONNULL_BEGIN
@interface RPSystemBroadcastPickerView (FindButton)
- (UIButton *)findButton;
@end
NS_ASSUME_NONNULL_END
.m 文件
#import "RPSystemBroadcastPickerView+FindButton.h"
@implementation RPSystemBroadcastPickerView (FindButton)
- (UIButton *)findButton {
return [self findButton:self];
}
- (UIButton*)findButton:(UIView*)view {
if(!view.subviews.count) {
returnnil;
}
if ([view isKindOfClass:[UIButton class]]) {
return(UIButton*)view;
}
UIButton*btn;
for(UIView*subViewinview.subviews) {
UIView*destinationView = [selffindButton:subView];
if(destinationView) {
btn = (UIButton*)destinationView;
break;
}
}
returnbtn;
}
@end
2 : 初始化
#pragma mark 初始化系统录屏按钮 RPSystemBroadcastPickerView
if(@available(iOS12.0, *)) {
self.picker = [[RPSystemBroadcastPickerView alloc] initWithFrame:CGRectZero];
//不显示话筒,麦克风按钮默认显示
self.picker.showsMicrophoneButton = NO;
//preferredExtension设置成自己的 bundel ID就只会显示自己记得APP Extension,默认显示的是所有的Extension列表,包括其他APP的Extension
self.picker.preferredExtension = @"你的APP Extension的bundel ID";
}else{
// Fallback on earlier versions
}
3: 使用
@property (nonatomic,strong)RPSystemBroadcastPickerView *picker;
#pragma mark显示Extension列表
//直接获取RPSystemBroadcastPickerView的button
UIButton*btn = [self.picker findButton];
//调用button点击方法,去显示Extension列表
[btn sendActionsForControlEvents:UIControlEventAllTouchEvents];
=============================================================
网友评论