ios - iOS:从 UISplitViewController 推送新的 ViewController
问题描述
我尝试了一些在这里找到的解决方案,但运气不佳。
为了简短起见,我想做以下事情:从 DetailView 按钮推送一个全新的 ViewController(全屏),并可选择使用导航返回按钮返回。
有没有办法轻松做到这一点或这个?
解决方案
您应该将拆分控制器添加到另一个导航控制器中(如果您使用情节提要,请将其视为新的初始控制器)。然后当你处理按钮的触摸动作时,像这样推动你不同的视图控制器:
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)
}
}
这应该就是你所需要的。
推荐阅读
- jsf - JSF 应用程序前端的全局日期/布尔格式
- python - 如何将 Pycharm 和 git 与 azure machile 学习服务(工作区)集成
- r - Function to group continuous variable in data.table
- ios - Xamarin 发布构建架构
- ruby-on-rails - 文件字段在更新时具有空值
- java - How to add correlation ID to the java program?
- vb.net - 如何防止函数完成
- hyperledger-fabric - Hyperledger Fabric : Impact on transaction when we migrate Orderer
- javascript - In Puppeteer how to switch to chrome window from default profile to desired profile
- android - How to show image in the place of creating message in androidX..?