【问题标题】:iOS app can support landscape orientation for only one tabBar item?iOS应用程序只能支持一个tabBar项目的横向方向吗?
【发布时间】:2015-07-15 17:20:41
【问题描述】:

我正在使用 swift 制作 iOS 应用程序。我的应用程序有很多视图,所有视图都将 UITabBar 作为根视图。我只需要为一个标签栏项目支持横向。

  • tabBar 1 - 仅纵向
  • tabBar 2 - 仅纵向
  • tabBar 3 - 仅纵向
  • tabBar 4 - 横向和纵​​向

我该怎么做?

【问题讨论】:

  • 这可能更容易实现。这似乎是一个类似的问题。 stackoverflow.com/questions/25651969/…
  • 好的,我将管理每个视图的方向但我有一个问题。当我的应用程序在 tabBar 4 中处于当前横向模式时。当我移动到另一个 tabBar 时,我的应用程序不会回到纵向模式。我应该检查每个视图并强制旋转,对吗? ps.对不起我的英语不好

标签: ios swift


【解决方案1】:

我有一个基于此答案的可行解决方案:https://stackoverflow.com/a/24928474/1359306

  1. 首先,确保在Target Settings > General > Deployment Info 中检查了支持的方向。

  1. 将此代码(取自链接答案)添加到您的应用委托:

    internal var shouldRotate = false
    func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {
      if shouldRotate {
        return .AllButUpsideDown
      } else {
        return .Portrait
      }
    }
    
  2. 然后在您的仅横向视图控制器中,将以下代码放入 viewDidAppear(不是 viewDidLoad!)以启用纵向和横向视图:

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    appDelegate.shouldRotate = true
    
  3. viewWillDisappear相反,再次禁用横向。

    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
    appDelegate.shouldRotate = false
    
  4. 当应用处于横向状态时,我还会隐藏我的选项卡和状态栏,这感觉比点击选项卡并自动旋转屏幕要好得多。


在我的情况下,有几件事我不必担心。

  • 从横向视图显示模态视图会导致问题

【讨论】:

  • 没有评论的投票:/如果这个答案是错误的或者可以改进,那么评论。我在产品中有这个代码。
猜你喜欢
  • 1970-01-01
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
相关资源
最近更新 更多