当前位置: 首页 > 知识库问答 >
问题:

快速返回到预览UINavigationController

利稳
2023-03-14

我的VC就像一个“出了问题”。我创建的这个VC像一个单独的VC(没有故事板),我想在我想要的地方展示它。但在“something wating expect”视图控制器中,我有一个按钮“refreship”。当用户点击此按钮时,他必须返回。

当我在解析Json或类似的事情时遇到一些问题时,我会调用something went English“View Controller,如下所示:

let navController = UINavigationController()

        navController.pushViewController(SomethingWentWorngVC(nibName: "SomethingWentWorngView", bundle: nil), animated: false)

        window?.rootViewController = navController
        window?.makeKeyAndVisible()

此外,我还有获取 的扩展

extension UIViewController {
     var appDelegate: AppDelegate {
     return UIApplication.shared.delegate as! AppDelegate
 }
 
 var sceneDelegate: SceneDelegate? {
     guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
         let delegate = windowScene.delegate as? SceneDelegate else { return nil }
      return delegate
 }
}

extension UIViewController {
 var window: UIWindow? {
     if #available(iOS 13, *) {
         guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
             let delegate = windowScene.delegate as? SceneDelegate, let window = delegate.window else { return nil }
                return window
     }
     
     guard let delegate = UIApplication.shared.delegate as? AppDelegate, let window = delegate.window else { return nil }
     return window
 }
}

中,我有返回按钮

@IBAction func refreshAction(_ sender: Any) {
    self.navigationController?.popToRootViewController(animated: false)

}

但它不起作用

共有1个答案

尚鸿才
2023-03-14

你可以用这种替代的方式来使用它,首先你需要在appdelegate中使用tag创建公共代码,然后你需要做addsubview到window,例如,

作秀

func showWentWrongScreen(){
        let getVC = SomethingWentWorngVC
                      if let getWindow = self.window {
                          getVC.view.tag = 501
                          getVC.view.frame = getWindow.bounds
                          getWindow.addSubview(getVC.view)
                      }
    }

用于删除

func removeWentWrongScreen(){
    if let getWindow = self.window, let getWentWrongView = getWindow.viewWithTag(501){
        getWentWrongView.removeFromSuperview()
    }
}

null

 类似资料:
  • 简要概述依赖管理 几乎所有基于JVM的项目都会或多或少依赖其他库,假设你在开发一个基于web的项目,你很可能会依赖很受欢迎的开源框架比如Spring MVC来提高效率。Java的第三方库一般以JAR文件的形式存在,一般用库名加版本号来标识。随着开发的进行依赖的第三方库增多小的项目变的越来越大,组织和管理你的JAR文件就很关键。 不算完美的依赖管理技术 由于Java语言并没提供依赖管理的工具,所以你

  • Entity Framework(EF) Core 是 当前流行的 Entity Framework 数据访问技术的一个轻量级、可扩展、跨平台版本。 EF Core 是一个对象关系映射(O/RM)框架,它允许 .NET 开发者使用 .NET 对象来做数据库相关的事情。它消除了大部分开发者本来要编写的数据访问代码。EF Core 支持多种数据库引擎,详细信息参见 数据库提供程序。 如果你喜欢通过敲代

  • 我有一个小的基本问题。我用的是Mac电脑,我以前在办公室工作。py文件与升华3。我喜欢的一件事是,当Sublime关闭时,对于文件夹中的给定文件——如果我在寻找一些代码——我可以点击空格键,Mac电脑可以快速预览文件。py文件。 现在我在Jupyter笔记本中工作,并将所有内容保存为. ipynb文件。现在我不能点击空格键和浏览文件——我从命令区启动JN,它要慢得多。 我怀疑有更快的方法在浏览器窗

  • 我在编辑速度模板。它们用于生成PDF。问题是我不能预览它们。我看不出模板呈现时会是什么样子。有什么工具可以用来吗?我试过谷歌搜索,但什么也找不到。 另外,我知道如果我在本地加载它,它不会显示变量。我感兴趣的是知道它会是什么样子。布局等。,

  • 使用方法:点击快速返回顶部按钮

  • 问题内容: 如何快速从函数返回3个相同类型(Int)的单独数据值? 我试图返回一天中的时间,我需要将小时,分钟和秒作为单独的整数返回,但是所有这些都来自同一个函数,这可能吗? 我想我只是不了解返回多个值的语法。这是我正在使用的代码,我在last(return)行上遇到了麻烦。 任何帮助将不胜感激! 问题答案: 返回一个元组: 然后将其调用为: 要么: