ios - iOS pushViewController 没有导航到 Swift5 中的控制器
问题描述
我在 Swift5 中使用 pushViewController 时遇到问题,我已经在 StackOverflow 上搜索了答案,但找不到任何可行的答案。
我要做的就是使用 pushViewController 导航到另一个控制器。
使用 self.present 适用于 Navigation,但 pushViewController 不起作用,原因我不知道。
仅使用以下当前作品:
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewController =
storyBoard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
self.present(viewController, animated: true, completion: nil)
但是使用 pushViewController 永远不会起作用:
我试过这个:我不工作
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "ViewController") as! ViewController
navigationController?.pushViewController(vc, animated: true)
我试过这个:我也不工作
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier: "ViewController" )
var navigationController = UIApplication.shared.keyWindow?.rootViewController as! UINavigationController
navigationController.pushViewController(viewController, animated: true)
我试过这个,它也不起作用
let viewController = storyboard.instantiateViewController(withIdentifier: "ViewController" )
let vc = self.windowRootViewController() as! ViewController
let nvc = vc.parent as! UINavigationController
nvc.pushViewController(viewController, animated: true)
请有人正确指导我做错了什么,或者我需要做的清单或配置才能正常工作吗?
感谢大家!
解决方案
在代码中设置断点并检查是否navigationController
不为零。如果它是 nil,pushViewController
将不起作用。
由于您能够呈现 viewController,因此使用 " ViewController
" 实例化 itt 应该不是问题。
推荐阅读
- php - 如何将 Json_encode PHP 转换为文本字符串数字
- flutter - 我可以在 Flutter 中更改 Google TTS 的语音吗?
- visual-studio-2015 - 在 IIS express 上使用机器名而不是 localhost
- flask - 为什么烧瓶不适用于 gunicorn 和电报 bot api?
- javascript - 在 Framer-Motion 中滑动页面时冻结/跳转
- flutter - 在那儿 ”!。” 飞镖中的运算符(颤振)?
- java - 在EC2中使用java(spring boot)执行python函数
- excel - 内存不足 | 在此之前: Range 类的 Paste Special 方法失败 从不同的工作簿粘贴范围
- javascript - 如何在 TinyMCE 中仅针对标题禁用粗体按钮?
- java - 如何避免 localhost:8080 上的白标错误(404)?