如何在UITabBarController的子类中处理方向更改

时间:2017-09-20 10:44:07

标签: ios swift

我是UITabBarController的子类。如何在UITabBarController的子类中处理方向更改?

注意:我已尝试过以下方法,但它无效。

override func didRotate(from fromInterfaceOrientation: UIInterfaceOrientation) 

2 个答案:

答案 0 :(得分:1)

您可以实现以下方法,

 func viewWillTransitionToSize(_ size: CGSize,
withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator)

在您的tabbarcontroller

的子类中

swift 3中的示例:

 override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {


     print("Orientation will change")

      if size.height > size.width {

        print("portrait")
    }



}

答案 1 :(得分:1)

与任何其他视图控制器一样,您可以覆盖viewWillTransitionToSize

- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator

在Swift中,它是viewWillTransition

func viewWillTransition(to size: CGSize, 
                   with coordinator: UIViewControllerTransitionCoordinator)

检查“已更改”(未来)方向的正确方法是检查大小变量:

if (size.height > size.width)
{
   //Portrait
}
else
{
   //Landscape
}