第二个vc小于初始vc

时间:2019-10-04 10:56:08

标签: swift ipad uiviewcontroller transition updates

昨天更新后,我在iPad上遇到了这个问题:如果加载第二个视图控制器,它看起来比最初的视图控制器小(请参见下面的照片)。有趣的是,这只是自从我更新到iPad上的新iOS之后才发生的。 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 :(得分:0)

自iOS 13发行以来,系统默认会自动选择View Controllers的模式表示样式。

如果您想抵消这种影响,可以为您提供帮助。

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

希望这会有所帮助!

相关问题