推送特定的 viewController
Posted
技术标签:
【中文标题】推送特定的 viewController【英文标题】:Push a specific viewController 【发布时间】:2019-02-21 17:52:23 【问题描述】:我有 2 个故事板,在故事板 1 中我有一个登录页面,在故事板 2 中,我有我的主页!所以问题出在我的主页上,我有注销按钮,当用户按下按钮我想回到我的登录页面时,我已经尝试了一些对我不起作用的方法! 我试过了:
self.dismiss(animated: true, completion: nil)
还有:
for controller in self.navigationController!.viewControllers as Array if controller.isKind(of: ViewController) self.navigationController!.popToViewController(controller, animated: true) break
那么,有什么方法可以返回我的登录页面??
【问题讨论】:
您在登录页面上使用导航控制器吗?如何从登录页面推送主页面? 是的,我有!我使用 segue 进行推送,在我的主页中,我有另一个导航控制器 + 按钮选项卡控制器 从你的主页,试试self.navigationController?.navigationController?.popToRootViewController(animated:true)
【参考方案1】:
由于您的代码不起作用,我想您的登录视图控制器不在导航堆栈中。以下是您可以尝试的方法。
let storyboard = UIStoryboard(name: "Login", bundle: nil)
if let loginViewController = storyboard.instantiateInitialViewController()
(UIApplication.shared.delegate as? AppDelegate)?.window?.rootViewController = loginViewController
【讨论】:
非常感谢它的魅力!我遇到了另一个问题!下面我贴出来【参考方案2】:你可以试试这个:
let sb = UIStoryboard(name: "1", bundle: nil)
let vc = sb.instantiateViewController(identifier: "ID") as! LoginVC
if let nav = navigationController
nav.pushViewController(vc, animated: true)
else
self.present(vc, animated: true, completion: nil)
【讨论】:
以上是关于推送特定的 viewController的主要内容,如果未能解决你的问题,请参考以下文章
使用 OneSignal 推送通知服务向特定测试设备发送推送通知