我正在使用以下代码以编程方式导航到另一个ViewController。它可以正常工作,但是在某种程度上隐藏了navigation bar。 我该如何解决? (如果需要ViewController的navigation controller话,可通过将嵌入来创建导航栏。)
navigation bar
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)
斯威夫特5
默认的模式呈现样式是卡片。这在顶部显示了以前的视图控制器,并允许用户滑动显示的视图控制器。
为了保留旧样式,您需要修改视图控制器,如下所示:
newViewController.modalPresentationStyle = .fullScreen
对于以编程方式创建和情节提要创建的控制器来说都是相同的。
迅捷3
使用以编程方式创建的控制器
如果要导航到以编程方式创建的Controller,请执行以下操作:
let newViewController = NewViewController() self.navigationController?.pushViewController(newViewController, animated: true)
通过StoryBoard创建控制器
如果要使用标识符“ 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)