问题描述
我正在使用launchPDFBrowserOnKonyForm
类中的方法Generic shared
来呈现视图控制器,并且代码如下:
#import "PDFGenericClass.h"
#import "PDFBrowserViewController.h"
@implementation PDFGenericClass
+ (id)sharedManager {
static PDFGenericClass *sharedMyManager = nil;
sharedMyManager = [[self alloc] init];
return sharedMyManager;
}
- (void)launchPDFBrowserOnKonyForm{
PDFBrowserViewController *pdfBrowser = [[PDFBrowserViewController alloc]init];
UIWindow *window = [[[UIApplication sharedApplication] windows] firstObject];
UIViewController *vc = [window rootViewController];
[vc presentViewController:pdfBrowser animated:YES completion:nil];
}
在我的PDFBrowserViewController
中,我展示了一个UIDocumentPickerViewControllerinside
viewDidLoad,下面给出了代码:
#import "PDFBrowserViewController.h"
#import <MobileCoreServices/MobileCoreServices.h>
#import "PDFPreviewControllerViewController.h"
@interface PDFBrowserViewController ()<UIDocumentPickerDelegate>
@end
@implementation PDFBrowserViewController
- (void)viewDidLoad {
[super viewDidLoad];
dispatch_async(dispatch_get_main_queue(),^{
// Do any additional setup after loading the view.
NSArray *types = @[(NSString*)kUTTypePDF];
//Create a object of document picker view and set the mode to Import
UIDocumentPickerViewController *docPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:types inMode:UIDocumentPickerModeImport];
//Set the delegate
docPicker.delegate = self;
//present the document picker
[self presentViewController:docPicker animated:YES completion:nil];
});
}
从另一个名为“ ViewControllerB”的视图控制器中的“调用FFI”按钮的按钮动作调用泛型类中的launchPDFBrowserOnKonyForm
。
显示的UIDocumentPickerController。
但是当我关闭UIDocumentpickerview控制器时,“ Invoke FFI”按钮所在的屏幕仍然处于奇怪的状态,如下所示:如何解决这个奇怪的问题?
解决方法
问题是您在 PDFBrowserViewController 中打开 UIDocumentPickerViewController ,因此当您关闭 UIDocumentPickerViewController 但未关闭 PDFBrowserViewController 时。
解决方案1:,无需使用 PDFBrowserViewController ,直接在顶部viewcontroller中打开 UIDocumentPickerViewController 。
解决方案2:在关闭 UIDocumentPickerViewController 后在Delegate方法中关闭了父控制器。
UIWindow *window = [[[UIApplication sharedApplication] windows] firstObject];
UIViewController *vc = [window rootViewController];
[vc dismissViewControllerAnimated:true completion:nil];