Контроллер всплывающего окна не отображается на старых устройствах Swift - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть ссылка в моем приложении на главной странице. Когда я нажимаю эту ссылку на iPhone 11 Pro max, появляется всплывающее окно с текстом и прозрачным фоном. Но проблема на других устройствах: когда я пробую это на et c .: iPhone 6s plus или 8, ничего не происходит. Спасибо за любые предложения.

Мой код с домашнего экрана:

  override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }

    @IBAction func showPopup(_ sender: Any) {

            let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "sbPopUpID") as! PopUpViewController
            self.addChild(popOverVC)
            popOverVC.view.frame = self.view.frame
            self.view.addSubview(popOverVC.view)
            popOverVC.didMove(toParent: self)

        }

и есть код для контроллера всплывающего окна:

import UIKit

class PopUpViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.black.withAlphaComponent(0.8)

        self.showAnimate()

        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func closePopUp(_ sender: AnyObject) {
        self.removeAnimate()
        //self.view.removeFromSuperview()
    }

    func showAnimate()
    {
        self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3)
        self.view.alpha = 0.0;
        UIView.animate(withDuration: 0.25, animations: {
            self.view.alpha = 1.0
            self.view.transform = CGAffineTransform(scaleX: 1.0, y: 1.0)
        });
    }

    func removeAnimate()
    {
        UIView.animate(withDuration: 0.25, animations: {
            self.view.transform = CGAffineTransform(scaleX: 1.3, y: 1.3)
            self.view.alpha = 0.0;
            }, completion:{(finished : Bool)  in
                if (finished)
                {
                    self.view.removeFromSuperview()
                }
        });
    }
}

Фактический код:

import UIKit
class HomeViewController: UIViewController, UIPopoverPresentationControllerDelegate {
 override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }

     @IBAction func showPopup(_ sender: Any) {
    let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "sbPopUpID") as! PopUpViewController
        popOverVC.modalPresentationStyle = .popover
        popOverVC.popoverPresentationController?.delegate = self

        popOverVC.preferredContentSize = CGSize(width: 400, height: 300)
        popOverVC.popoverPresentationController?.sourceView = view
        popOverVC.popoverPresentationController?.sourceRect = view.bounds
           self.present(popOverVC, animated: true)

          /*
           self.addChild(popOverVC)
            popOverVC.view.frame = self.view.frame
            self.view.addSubview(popOverVC.view)
            popOverVC.didMove(toParent: self)
           */

        }

    func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle { return UIModalPresentationStyle.none }

    }

...