以编程方式显示到Controller的导航

问题描述

我将菜单VC从StoryBoard更改为编程操作。

当我想加载另一个VC时,我正在使用Action Segue“ Show”。

我正在使用的临时代码有效,但是将VC弹出顶部。您可以通过编程方式操作“显示”等效项吗?如果可以,怎么办?

let storyBoard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "SunriseSunsetResultsViewController")
self.present(newViewController,animated: true,completion: nil)

解决方法

要执行Show segue的操作,请将present替换为show

let storyBoard: UIStoryboard = UIStoryboard(name: "Main",bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "SunriseSunsetResultsViewController")
self.show(newViewController,sender: self)

但是请注意,除非present不是self.navigationController,否则此操作与nil相同。换句话说,除非导航控制器负责该界面,否则您无法进行以前的横向导航。

您可以说show而不是pushViewController,但同样要注意。只有导航控制器才能执行您以前的操作。