【发布时间】:2021-05-12 03:25:32
【问题描述】:
我尝试了一些我在这里找到的解决方案,但运气不佳。
为了简短起见,我想执行以下操作:从 DetailView 按钮推送一个全新的 ViewController(全屏),并可选择使用导航返回按钮返回。
有没有办法轻松做到这一点?
【问题讨论】:
标签: ios swift ipad uinavigationcontroller uisplitviewcontroller
我尝试了一些我在这里找到的解决方案,但运气不佳。
为了简短起见,我想执行以下操作:从 DetailView 按钮推送一个全新的 ViewController(全屏),并可选择使用导航返回按钮返回。
有没有办法轻松做到这一点?
【问题讨论】:
标签: ios swift ipad uinavigationcontroller uisplitviewcontroller
您应该将拆分控制器添加到另一个导航控制器中(如果您使用情节提要,请将其视为新的初始控制器)。然后当你处理按钮的触摸动作时,像这样推动你不同的视图控制器:
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)
}
}
这应该就是你所需要的。
【讨论】: