我正在使用以下代码以编程方式导航到另一个 ViewController。它工作正常,但它以某种方式隐藏了导航栏
。 我该如何解决这个问题?(如果有问题,导航栏是通过将 ViewController
嵌入到 navigation controller
中创建的。)
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("nextView") as NextViewController
self.presentViewController(nextViewController, animated:true, completion:nil)
最佳答案
swift 5
默认的模式呈现样式是卡片。这在顶部显示了先前的 View Controller ,并允许用户滑动显示的 View Controller 。
要保留旧样式,您需要像这样修改要呈现的 View Controller :
newViewController.modalPresentationStyle = .fullScreen
这对于以编程方式创建的 Controller 和 Storyboard创建的 Controller 都是相同的。
swift 3
使用以编程方式创建的 Controller
如果您想导航到以编程方式创建的 Controller ,请执行以下操作:
let newViewController = NewViewController()
self.navigationController?.pushViewController(newViewController, animated: true)
使用 StoryBoard 创建的 Controller
如果您想使用标识符“newViewController”导航到 StoryBoard 上的 Controller ,请执行以下操作:
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "newViewController") as! NewViewController
self.present(newViewController, animated: true, completion: nil)
关于ios - Swift 以编程方式导航到另一个 View Controller /场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39450124/