我的问题是我找不到以编程方式在IOS中的两个场景之间转换的正确代码。我已经尝试了一些示例代码,但是它们都没有按预期工作。
let vc storyboard!.instantiateViewController(withIdentifier: "savedMode") as! SavedModeViewController
let navigationController = UINavigationController(rootViewController: vc)
self.present(navigationController, animated: true, completion: nil)
此代码转到新场景,但是后退按钮未出现在导航栏的左侧,并且场景之间的转换是错误的;而不是从左到右的动画,而是从下到上的动画。
let controller = storyboard?.instantiateViewController(withIdentifier: "savedMode") as! SavedModeViewController
present(controller, animated: true, completion: nil)
这是我尝试的第二个代码。问题在于,使用此代码,导航栏在第二个场景中根本不显示。
我尝试了另一种方法,但是屏幕不是黑色,而是第二个场景。
答案 0 :(得分:0)
调用present
将在当前视图控制器上模态显示新的视图控制器。
您想要的是使用pushViewController
将新的视图控制器推到现有的UINavigationController上。
if let savedVC = storyboard?.instantiateViewController(withIdentifier: "savedMode") as? SavedModeViewController,
let navigationController = self.navigationController {
navigationController.pushViewController(savedVC, animated: true)
} else {
// TODO: Handle unexpected nil occurrences
print("Error loading SavedModeViewController")
}