второй vc меньше, чем начальный vc - PullRequest
0 голосов
/ 04 октября 2019

Я получил эту проблему на iPad после обновления вчера: если я загружаю второй контроллер вида, он кажется меньше, чем первоначальный (см. Фото ниже). Интересно, что это происходит только с момента моего обновления до новой iOS на iPad. На iPhone такой проблемы нет: оба VC имеют одинаковый размер.

Вот код:

import UIKit

class StartVC: UIViewController, ButtonDelegate {


   var width = CGFloat()
   var height = CGFloat()




override func viewDidLoad() {
    super.viewDidLoad()

    width = view.frame.width
    height = view.frame.height

    setTestBtn()


    view.backgroundColor = UIColor.purple

}

func setTestBtn(){

    let a = Button(frame: CGRect(x: 0,y: 0, width: width*0.2, height: width*0.2))
    a.center = CGPoint(x: width*0.5, y: height*0.5)
    a.backgroundColor = .cyan
    a.delegate = self
    a.setLabel()
    a.label.text = "Go to the MainVC"
    view.addSubview(a)
}

func buttonClicked(sender: Button) {

    let vc = self.storyboard?.instantiateViewController(withIdentifier: "mainVC") as! MainVC
    let transition = CATransition()
    transition.duration = 2
    transition.type = CATransitionType.push
    transition.subtype = CATransitionSubtype.fromRight
    view.window!.layer.add(transition, forKey: kCATransition)

    vc.view.frame = view.bounds

    self.present(vc, animated: true, completion: nil)


       print("# ViewController func buttonClicked() OK!")

   }




import UIKit

class MainVC: UIViewController, ButtonDelegate {

var width = CGFloat()
var height = CGFloat()

override func viewDidLoad() {
    super.viewDidLoad()

    width = view.frame.width
    height = view.frame.height

    setTestBtn()

    view.backgroundColor = .red


}

func setTestBtn(){

    let a = Button(frame: CGRect(x: 0,y: 0, width: width*0.2, height: width*0.2))
    a.center = CGPoint(x: width*0.5, y: height*0.5)
    a.backgroundColor = .orange
    a.delegate = self
    a.setLabel()
    a.label.text = "Go to the StartVC"
    view.addSubview(a)
}

func buttonClicked(sender: Button) {

    let vc = self.storyboard?.instantiateViewController(withIdentifier: "startVC") as! StartVC
    let transition = CATransition()
    transition.duration = 2
    transition.type = CATransitionType.push
    transition.subtype = CATransitionSubtype.fromRight
    view.window!.layer.add(transition, forKey: kCATransition)

    vc.view.frame = view.bounds

    self.present(vc, animated: true, completion: nil)

       print("# ViewController func buttonClicked() OK!")

   }


}

Initial View Controller iPad Second View Controller iPad Initial View Controller iPhone Second View Controller iPhone

1 Ответ

0 голосов
/ 04 октября 2019

С момента выхода iOS 13 стиль модальной презентации View Controllers автоматически выбирается системой по умолчанию.

Если вы хотите противостоять этому эффекту, это может помочь вам.

vc.modalPresentationStyle = .overFullScreen
self.present(vc, animated: true, completion: nil)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...