如何从分离的视图控制器中呈现视图控制器?

2024-01-05

我试图以模态方式呈现一个视图控制器并获得著名的Presenting view controllers on detached view controllers is discouraged错误。我进行了研究,一致的解决方案似乎是由家长进行演示,我尝试过但没有成功。我怀疑问题是因为导航控制器是从结构实例化为静态属性的(以便其他视图控制器更容易弹出到根目录,因为这是用户体验所要求的)。

struct SectionNavigationControllers {
    static var one = SectionNavigationController()
    static var two = SectionNavigationController()
    static var three = SectionNavigationController()
    static var four = SectionNavigationController()
}

这是创建导航控制器之一的位置(使用此结构):

let SectionOneRoot = MasterSearchViewController()

func addNavigationController() {

    self.addChildViewController(SectionOneRoot)
    SectionOneRoot.didMove(toParentViewController: self)
    SectionNavigationControllers.one = SectionNavigationController(rootViewController: SectionOneRoot)
    view.addSubview(SectionNavigationControllers.one.view)

}


因此,当我尝试以模态方式呈现视图控制器时MasterSearchViewController(根视图控制器),我收到上述错误。

navigationController?.present(Random200ViewController(), animated: true, completion: nil)


Ideas?


这是一个方便的函数,您可以将其添加到任何代码段中,以从应用程序中的任何位置呈现视图控制器:

func showModally(_ viewController: UIViewController) {
    let window = UIApplication.shared.keyWindow
    let rootViewController = window?.rootViewController
    rootViewController?.present(viewController, animated: true, completion: nil)
}

我希望它有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从分离的视图控制器中呈现视图控制器? 的相关文章

  • 如何将任意颜色的色度键滤镜应用到实时摄像头源ios?

    基本上我想将色度键滤镜应用到 ios 实时摄像头源 但我希望用户选择将被另一种颜色替换的颜色 我找到了一些使用绿屏的示例 但我不知道如何动态替换颜色而不仅仅是绿色 知道如何以最佳性能实现这一目标吗 您之前曾询问过我的情况GPUImage h
  • 如何在iOS应用程序中实现信号量?

    是否可以在ios应用程序中实现计数信号量 对的 这是可能的 有很多可用的同步工具 同步 NSLock NS条件 NS条件锁 GCD 信号量 并行线程锁 我建议阅读 线程编程指南 http developer apple com librar
  • RestKit链接器错误

    我一直遵循 RestKit 安装说明 但现在在尝试构建应用程序时出现错误 这是针对 ios iPad 的 我收到 命令 Developer Platforms iPhoneSimulator platform Developer usr b
  • 在 UILongPressGestureRecognizer 上,如何检测哪个对象生成了事件?

    我有几个 UIButton 的视图 我已成功使用 UILongPressGestureRecognizer 实现 并使用以下内容作为选择器 void longPress UILongPressGestureRecognizer gestur
  • 当将 contentMode 设置为 UIViewContentModeScaleAspectFit 时,如何设置 UIImageView 左对齐或右对齐?

    我想在使用时控制图像对齐UIViewContentModeScaleAspectFit in UIImageView 例如 我有两个UIImageView在上述的一个视图中 这两个UIImageView的内容模式是UIViewContent
  • 更快地估计 CollectionView 中单元格高度的方法

    我的 UICollectionView 中有一个无限滚动 我注意到我估计单元格高度的方式是我的集合视图的瓶颈 我滚动收藏视图的次数越多 它就会导致一些长时间的延迟 有没有更好的方法来估计单元格的高度 这些单元格有不同的高度 因为我有一个UI
  • 如何在 tvOS 中添加检测按钮按下情况?

    我已经遵循这个tutorial http jamesonquave com blog developing tvos apps for apple tv with swift 一切正常 我遇到的唯一问题是我不知道如何检测何时按下按钮 提前致
  • CALayerframe.size不等于bounds.size

    我在CALayer上遇到了一些奇怪的事情 最后发现CALayer的frame size不等于它的bounds size 这是我无法理解的 我知道frame是在super的坐标系中 bounds是它自己的坐标 并且通常的情况是frame or
  • UIButton 上的圆形渐变边框

    您好 我一直在尝试在我的应用程序中实现一个 UIButton 它具有圆角和渐变边框 我使用以下代码在按钮上创建渐变边框 let gradient CAGradientLayer gradient frame CGRect origin CG
  • 从核心数据存储创建 .sqlite 文件?

    我在书籍和提供 sqlite 文件下载的网站上看到过教程 sqlite 文件用于核心数据 如何获取 sqlite 文件FROM应用程序或核心数据存储TO我的桌面 如果您要创建一个预填充的 sqlite 文件以与 Core Data 一起使用
  • 数组排序错误:“二元运算符 '<' 无法应用于两个 'Int?'操作数”

    这是按 tableView 时间戳中的每个单元格对数组进行排序的代码 self ProjectsArray sorted by project project2 gt Bool in return project timestamp int
  • 多次显示admob插页式广告怎么办?

    我有一个小型游戏应用程序 它有一个故事板 里面创建了像开始菜单 游戏区域 分数这样的场景 我在其中添加了 admob 横幅视图和插页式广告 我的横幅视图工作正常 但我的插页式广告只能工作一次 我在 viewdidload 上加载插页式广告
  • 在 SwiftUI App 中实现深色模式切换

    我目前正在我的应用程序中研究深色模式 虽然由于我的 SwiftUI 基础 深色模式本身并不困难 但我正在努力选择将 ColorScheme 设置为独立于系统 ColorScheme 的选项 我在苹果人机界面指南中找到了这一点 https i
  • 在 iPhone 5 的横向模式下启动启动画面

    我们的通用应用程序仅适用于横向模式 我们需要为 iPhone 4 和 iPhone 5 添加启动画面 对于 iPhone 5 的肖像 我们使用 email protected cdn cgi l email protection 如何为 i
  • Swift 5 MacOS 图像调整大小内存问题

    我是使用 Swift 进行 Mac OS 应用程序开发的新手 但我尝试制作简单的 ImageResizer 应用程序 我必须调整 50k 图像的大小 10个小时后 内存已增加到近120GB 我以为 Swift 也有垃圾收集器 为什么它可以增
  • 如何将图像放在 UIButton 中文本的右侧?

    如果可以避免的话 我不想使用子视图 我想要一个UIButton其中包含背景图像 文本和图像 现在 当我这样做时 图像位于文本的左侧 背景图像 文本和图像都有不同的高亮状态 最简单的解决方案 iOS 10 及更高版本 Swift button
  • 使用 twitterkit 将图像发布到 Twitter

    我正在尝试使用 Twitter 的新 TwitterKit 和自定义 UI 发布图像和推文 他们提供的唯一文档是如何用他们的观点来做这件事 所以我可以弄清楚如何在没有图像的情况下做到这一点 NSMutableDictionary messa
  • Xcode 找不到我的静态库!

    这是链接器错误 i686 apple darwin10 gcc 4 2 1 Users william Documents SettingsLibrary build Debug iphonesimulator libSettingsLib
  • 如何获取 ios 日期数组中的所有星期日

    我只想要一个数组 它以 NSDate 的形式包含一年中的所有星期一 但速度很快 我在 Objective c 中使用以下代码 但不知道如何在 swift 中使用它 NSDate pickerDate NSDate date NSLog pi
  • iOS Swift 中断键盘事件

    我在拦截键盘事件时遇到问题 我已将我的 iOS 与 SteelSeries Free 游戏手柄控制器 连接 当连接到 iOS 时 它将被检测为蓝牙键盘 这是在我打开Notes时测试的 按下游戏手柄上的任何按钮都会写一个字母 我需要拦截此按钮

随机推荐

  • 在数据库中使用DXL导入SSJS脚本库

    我们需要使用 DXL 在数据库中导入 SSJS 库 为此 我们编写了一个 Java 代理 其代码如下 import lotus domino public class JavaAgent extends AgentBase private
  • 堆栈不足以继续安全地执行程序。 ASP.NET MVC 4

    我的搜索功能似乎在无限循环中继续 每次我的调试命中 POST actionresult 下面的操作时都会被触发 在我的 Masterpage cshtml 中 我有以下操作 li Html Action Search Search li 这
  • 递归删除数组键前缀

    我有一个以下格式的数组 每个子数组都以父级的键作为前缀 input array seo text gt array seo text title gt seo text description gt seo text button gt a
  • 一键上传文件

    如何在需要发送文件的 html 中制作一个按钮 允许您选择文件 然后将其发送到我想要的页面上 而不使用按钮来选择文件并使用按钮将其发送到另一个页面 感谢您
  • python3.6 - TypeError:write() 参数必须是 str,而不是 bytes - 但不涉及文件

    以下代码返回错误 我不明白为什么 在Python 3 6上运行 import subprocess import sys import os def execute shell cmd cmd process subprocess Pope
  • Qt 上的“GLib-ERROR **:无法创建管道主循环唤醒:打开的文件太多”

    我正在 Ubuntu 上工作 当我运行程序大约 1 小时后 我收到此错误 GLib ERROR 无法创建管道主循环唤醒 打开的文件太多程序意外完成 当我使用 gdb 运行时 它不会崩溃 我不明白为什么 以及此错误的原因是什么 非常感谢 打开
  • 后台模式下的 iOS 区域监控

    我在我的应用程序中使用区域监控 但遇到了一个问题 但找不到任何答案 区域监控在后台模式下如何工作 根据位置感知 PG 的说法 每次用户的当前位置 跨越边界区域 系统 生成适当的区域事件 为您的应用程序 如果你的 应用程序已经在运行 这些 活
  • 寻找一个 Perl 模块来在共享 RAM 中存储哈希结构

    我想将数据结构持久存储在 RAM 中 并可以从预分叉中访问它 Perl 中的 Web 服务器进程 理想情况下 我希望它的行为类似于 memcached 但不需要单独的守护进程 有任何想法吗 Use 缓存 FastMmap http sear
  • 定义中的预处理器指令? [复制]

    这个问题在这里已经有答案了 可能的重复 C 预处理器 在 define 中使用 if https stackoverflow com questions 2831934 c preprocessor using if inside defi
  • 检测零分和交叉中获胜的比赛

    我需要知道在圈和十字游戏中检测获胜动作的最佳方法 源代码并不重要 我只需要一个示例或可以开始的东西 我唯一能想到的就是使用循环并测试玩家所做的每个动作的每个方向 以搜索例如连续五个 有没有更快更有效的方法呢 真正简单的解决方案是从最后一步开
  • Haskell 中的多核编程 - Control.Parallel

    我正在尝试学习如何使用Control Parallel模块 但我认为我没有理解正确 我正在尝试运行以下代码 fibs hs import Control Parallel fib Int gt Int fib 0 0 fib 1 1 fib
  • 如何使用 Java 8 中的流将列表中的对象按属性分组到其他列表中?

    我想对包含以下内容的对象列表进行分组time属性分为 5 分钟间隔 最好使用流和收集器 我在 StackOverflow 上找到的唯一可能的解决方案是计算我需要多少个间隔 子列表 将每个对象添加到每个列表中 并过滤掉不适合相应时间范围的对象
  • php中如何检查文件路径是否为图像?

    我有一个表存储 images documents pdf 等的文件路径 我的查询是 Select File Paths from Uploads 现在我如何使用 PHP 检查文件路径是否是图像 如果是图像我必须查看它或下载它 老好获取图像大
  • 有没有一种干净的方法来阻止 windows.h 创建近和远宏?

    在 WinDef h 的深处有一段来自分段内存时代的遗迹 define far define near 如果您尝试使用近或远作为变量名称 这显然会导致问题 有什么干净的解决方法吗 其他然后重命名我的变量 您可以安全地取消定义它们 这与其他人
  • 将用户控件添加到 wpf 窗口

    我创建了一个用户控件 但是当我将其添加到窗口中的 XAML 时 Intellisense 不会拾取它 并且我不知道如何将其添加到窗口 您需要在窗口标签内添加引用 就像是 xmlns controls clr namespace YourCu
  • 在 C# 中支持 VB.NET 的导入命名空间功能

    我习惯VB NET 我正在学习的游戏源代码是用C 编写的 我觉得很烦人 我必须添加using System Diagnostics到源代码以便输入Debug WriteLine 我在项目属性下进行了检查 但找不到允许我将命名空间添加到导入的
  • Spring框架是否支持多部分请求中的流模式

    我在中找不到任何指示Spring文档 http static springsource org spring docs 1 2 x reference mvc html它支持在处理多部分请求的 MultipartHttpServletReq
  • 如何强制 Internet Explorer 使用元标记中给出的编码?

    我正在尝试准备一个包含英语和阿拉伯语混合内容的演示 html 页面 基本上它包含一个小桌子 左边是英语短语 右边是阿拉伯语翻译 因为我不懂阿拉伯语 所以我从 中取出了阿拉伯字母的前三个字符统一码参考 http www unicode org
  • 如何在 Visual Studio 2013 调试会话期间编辑日期时间变量

    如果我放置断点并导致代码执行在我希望测试 DateTime 变量值的行暂停 则 Visual Studio 2013 调试器将以 10 1 2017 12 的形式显示 DateTime 变量的值 00 00 AM 当我悬停它甚至允许我开始编
  • 如何从分离的视图控制器中呈现视图控制器?

    我试图以模态方式呈现一个视图控制器并获得著名的Presenting view controllers on detached view controllers is discouraged错误 我进行了研究 一致的解决方案似乎是由家长进行演