Закрытие почтового приложения iOS, открытого из UIDocumentInteractionController, удаляет представление представления ViewController в iOS7.

Я реализовал UIDocumentInteractionController в своем приложении для отображения открытых опций. Он отлично работает на устройствах iOS8, но в iOS7, когда я открываю свой PDF-файл по почте из options. Он открывает компоновщика почты, когда я закрываю компоновщика почты, а также удаляет кнопку меню из моего представления (которая добавляется в окно). Целый день я боролся с этой проблемой, но не нашел решения. Когда я открываю свой PDF в других параметрах, проблем нет. Проблема только с компоновщиком почты с iOS7. Я знаю, что UIDocumentInterfaceController имеет проблемы с iOS7. Я обнаружил ту же проблему на SO, но это с возможностью предварительного просмотра быстрого просмотра.

Вот мой код для открытия опций

[self.docInteractionController presentOptionsMenuFromRect:self.view.frame
                                                   inView:self.view
                                                 animated:YES];

Любая помощь в этом будет оценена.

Заранее спасибо.


person Mayank Jain    schedule 16.04.2015    source источник
comment
Я думаю, вы должны использовать self.window вместо self.view.   -  person IOSDev    schedule 16.04.2015
comment
Окно @IOSDev недоступно из себя. Я также попытался представить меню параметров в окне приложения.   -  person Mayank Jain    schedule 17.04.2015
comment
он может быть доступен из себя, посмотрите self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];   -  person IOSDev    schedule 18.04.2015
comment
NSString *textToShare = @Los!; NSURL *myWebsite = [NSURL URLWithString:@a.com/]; UIImage *image = [UIImage imageNamed:@index.jpg]; NSArray *objectsToShare = @[textToShare, myWebsite, image]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil]; NSArray *excludeActivities = @[UIActivityTypeAirDrop,]; ActivityVC.excludedActivityTypes = excludeActivities; [самостоятельный PresentViewController: ActivityVC анимированный: ДА завершение: ноль];   -  person ashForIos    schedule 11.05.2015
comment
Он удаляет кнопку меню или удаляет нижний контроллер модального представления?   -  person Vitalii Gozhenko    schedule 04.06.2015
comment
@MayankJain, где вы разместили код закрытия почтового приложения?   -  person Ganpat    schedule 26.06.2019


Ответы (4)


Попробуйте этот, он может помочь решить вашу проблему.

NSURL* url = //...Your URL //[NSURL fileURLWithPath:path];
UIDocumentInteractionController* docController = [UIDocumentInteractionController interactionControllerWithURL:url];
docController.delegate = self;
[docController presentPreviewAnimated:YES];
person VRAwesome    schedule 27.07.2015
comment
Я не хочу открывать предварительный просмотр @angel... Я просто хочу открыть компоновщик почты из меню параметров.... - person Mayank Jain; 27.07.2015

для этого вы можете проверить версию iOS, если она ‹ 8, а затем открыть этот файл PDF в веб-браузере, как это

    UIWebView *webview = [[UIWebView alloc] init];
    [self.view addSubview:webview];
    NSString *path = [[NSBundle mainBundle] pathForResource:@"pdfFileName" ofType:@"pdf"];
    NSURL *targetURL = [NSURL fileURLWithPath:path];
    NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
    [webview loadRequest:request];`
person Rogger98    schedule 17.04.2017

Попробуй это. У меня работает нормально

 @IBAction func btnPresentAction(_ sender: UIButton) {

        let fileURL = Bundle.main.path(forResource: "backgroundPerson", ofType: "png")

        let urlI = URL(fileURLWithPath: fileURL!)

        let documentController = UIDocumentInteractionController.init(url: urlI)

        documentController.delegate = self

//        documentController.presentOptionsMenu(from: self.view.frame, in: self.view, animated: true)
        documentController.presentPreview(animated: true)

//        self.present(documentController, animated: true, completion: nil)

    }

    func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
        return self
    }

    func documentInteractionControllerViewForPreview(_ controller: UIDocumentInteractionController) -> UIView? {
        return self.view
    }

    func documentInteractionControllerRectForPreview(_ controller: UIDocumentInteractionController) -> CGRect {
        return self.view.frame
    }
person vijay    schedule 16.11.2018

person    schedule
comment
проверьте эту ссылку, она может вам помочь - person Kamalkumar.E; 09.09.2015
comment
проверьте ссылку для получения дополнительных ссылок code.tutsplus .com/туториалы/ - person Kamalkumar.E; 09.09.2015