【问题标题】:iOS: Push a new ViewController from a UISplitViewControlleriOS:从 UISplitViewController 推送新的 ViewController
【发布时间】:2021-05-12 03:25:32
【问题描述】:

我尝试了一些我在这里找到的解决方案,但运气不佳。

为了简短起见,我想执行以下操作:从 DetailView 按钮推送一个全新的 ViewController(全屏),并可选择使用导航返回按钮返回。

有没有办法轻松做到这一点?

【问题讨论】:

    标签: ios swift ipad uinavigationcontroller uisplitviewcontroller


    【解决方案1】:

    您应该将拆分控制器添加到另一个导航控制器中(如果您使用情节提要,请将其视为新的初始控制器)。然后当你处理按钮的触摸动作时,像这样推动你不同的视图控制器:

    let viewController = UIStoryboard.init(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "DiffViewController")
    self.splitViewController?.navigationController?.pushViewController(viewController, animated: true)
    

    将拆分控制器嵌套到导航中会在屏幕顶部显示一个额外的导航栏。因此,要将其隐藏为拆分控制器的子类并添加以下代码:

    final class YourSpllitViewController: UISplitViewController {
      override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        navigationController?.setNavigationBarHidden(true, animated: false)
      }
    }
    

    然后让您的不同控制器执行以下操作:

    final class DiffViewController: UIViewController {
    
      override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        navigationController?.setNavigationBarHidden(false, animated: false)
      } 
    }
    

    这应该就是你所需要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多