从搜索结果表 (UISearchController) 导航到视图(推送)并将搜索结果保留在适当位置

2024-02-18

我有一个搜索结果表(UISearchController)呈现在导航堆栈上存在的视图上。我在视图中呈现搜索控制器和表格,如下所示:

    _searchResultsTableViewController = [[CalendarSearchResultsTableViewController alloc] init];
_searchResultsTableViewController.delegate = self;

_searchController = [[UISearchController alloc] initWithSearchResultsController:_searchResultsTableViewController];
_searchController.delegate = self;
_searchController.hidesNavigationBarDuringPresentation = NO;
_searchController.dimsBackgroundDuringPresentation = YES;
_searchController.obscuresBackgroundDuringPresentation = YES;
_searchController.active = YES;

_searchController.searchBar.delegate = self;

UIEdgeInsets adjustForTabbarInsets = UIEdgeInsetsMake(0, 0, CGRectGetHeight(self.tabBarController.tabBar.frame), 0);
_searchResultsTableViewController.tableView.contentInset = adjustForTabbarInsets;
_searchResultsTableViewController.tableView.scrollIndicatorInsets = adjustForTabbarInsets;

[self.navigationController presentViewController:_searchController animated:YES completion:nil];

这提出了一个UISearchBar超过UINavigationBar并且搜索表将按预期显示。当用户从表中选择搜索结果时,我想通过将其推送到导航堆栈来呈现选择的视图,同时搜索结果保持在原位。我现在的工作方式是,呈现搜索控制器的视图打开视图,但这需要关闭搜索控制器,因为search result view显示在搜索结果表后面。

我怎样才能让搜索控制器推送search result view到导航堆栈上,允许用户导航回搜索结果?

我希望它如何工作的一个示例可以在 iOS Mail 的日历应用程序中找到(当您搜索时)。

My navigationController搜索结果控制器中的属性为零,因此我当前无法呈现search result view从那里。

该项目同时使用 Objective-C 和 Swift,因此任何一个的答案都可以。任何帮助深表感谢!


我认为您需要做出 3 个小改变。

  1. _searchController.hidesNavigationBarDuringPresentation = YES;
  2. [self presentViewController:_searchController animated:YES completion:nil];
  3. self.definesPresentationContext = YES; // in viewDidLoad呈现 searchController 的 viewController
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从搜索结果表 (UISearchController) 导航到视图(推送)并将搜索结果保留在适当位置 的相关文章

  • 如何通过单击颤动推送通知来打开特定屏幕

    我试图在单击推送通知时打开特定屏幕 我的有效负载如下所示 var payload notification title notificationTitle body notificationMessage click action scre
  • 运行 pod install 时出错 - 在目标“Runner”上自动分配版本“8.0”的平台“iOS”

    你好 我无法用 Cocoapods 解决这个问题 任何人都可以帮助我 这是我第一次使用这个导入 导入 包 flutter vlc player flutter vlc player Dart 而不是可能出什么问题 我在mac上使用andro
  • 如何从一个 ViewController 到另一个 ViewController 访问对象

    提供一些技巧来摆脱以下情况 描述 我有两个 viewController 即视图控制器1 and 视图控制器2 所以显然我们有ViewController1 h ViewController1 m and ViewController2 h
  • 将文件上传到 Google 云端硬盘时出错

    我已经在我的应用程序项目中实现了 Google Drive SDK 并尝试在 Google Drive 中上传图像 但出现错误 我的代码来自Here https developers google com drive quickstart
  • 如何使用所有类型的 UTI 初始化 UIDocumentPickerViewController

    我想打开 UIDocumentPickerViewController 并且它应该允许用户选择所有类型的文件 我尝试在 UIDocumentPickerViewController init 方法中提及所有 UTI 但仍然找不到某些文件 如
  • 在 Swift 3 中以编程方式创建没有 XIB 的 NSViewController

    我正在尝试在不使用 Interface Builder 的情况下制作 macOS 应用程序 我的项目已构建并运行 但我的主视图控制器似乎没有加载其视图 那就是viewDidLoad 方法未被调用 我正在使用 Xcode beta 8 0 b
  • “StorageReference”类型的值没有成员“put”[重复]

    这个问题在这里已经有答案了 我更新到 firebase storage 4 0 现在收到此错误 指出 storageRef 没有成员 put 它以前在旧版本的 Firebase 中有效 if let selectedImage select
  • 搜索栏与节标题视图重叠

    我将搜索栏放在 tableHeaderView 内 在 iphone 6 上一切正常 但在 iphone 5s 上我得到这个奇怪的结果 override func viewDidLoad super viewDidLoad tableVie
  • MFMailcomposeviewcontroller 发送按钮被禁用

    有没有人遇到这样的问题MFMailcomposeviewcontroller发送按钮被禁用 变灰 取消按钮工作得很好 这似乎是一个新错误 如果本机邮件应用程序从 iPhone 中删除 从 iOS 10 开始允许 则可能会发生这种情况 在这种
  • 如何多次从 NSHTTPCookieStorage 中清除 cookie?

    我的桌面应用程序连接到 Google App Engine 上托管的网络应用程序 一旦通过身份验证 它就会获得一个 authtoken cookie 并为所有未来的请求传递该 cookie 这一切都有效 但现在我想添加 退出 我尝试像这样实
  • UITouch移动速度检测

    我正在尝试检测触摸移动的速度 但并不总能得到我期望的结果 补充 速度峰值太多 任何人都可以发现我是否在做一些时髦的事情或建议更好的方法吗 void touchesBegan NSSet touches withEvent UIEvent e
  • iOS 5 中的新错误:WebKit 丢弃了未捕获的异常

    我正在尝试加载一个UIWebView与 Facebook OAuth 授权 URL 我使用以下代码 当我的UIWebView加载 Facebook 登录页面 我输入我的凭据 然后按 登录 按钮 当我点击按钮时 我收到以下错误 WebKit
  • 块与代表[重复]

    这个问题在这里已经有答案了 可能的重复 代码块能完全取代委托吗 https stackoverflow com questions 4584404 do code blocks completely replace delegates 我刚
  • 自定义过渡动画在animationControllerForPresentedController和animateTransition之间未知延迟

    我的目标是使动画在第一个视图控制器中开始并在第二个视图控制器中结束 我正在尝试使用符合以下条件的对象进行过渡动画UIViewControllerAnimatedTransitioning and UIViewControllerTransi
  • EKEvent接受邀请

    你如何接受EKEventiOS 中的邀请 我知道这有可能梦幻般的 日历 5和其他日历应用程序具有此功能 但我没有看到公开的非只读属性来更改用户有关事件的状态 知道如何做到这一点吗 Thanks 事实证明 经过更多研究后 所有这些应用程序都只
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • iOS:如何定义公共方法?

    如何在每个视图控制器类中定义一个可以从任何地方调用的方法 我有一个方法可以为我带来一个 json 文件 并且我希望它可以重用 因为我的应用程序上有多个 json 调用 你能帮助我吗 您可以通过类别添加它 EDIT 创建一个新的 h m 文件
  • Objective c,实例成员的内存管理

    我对实例成员的内存管理感到困惑 我有一个带有 ivar 的课程 DetailedResultsTableViewController detailedResultsTableViewController and property nonat
  • 在哪里可以了解有关 WebCoreSharedBufferData 的更多信息?

    我有一个在 iOS 6 上完美运行的应用程序 但在 iOS 7 上 如果用户采取了非常具体的操作 太复杂而无法进入 但它使用UIWebView并且它是一致的 应用程序崩溃并出现错误 Terminating app due to uncaug
  • 快速从 RSS feed 获取 img url

    我希望能够从一段字符串中检索 img url 以下是我尝试检索的 img URL 的示例 p img width 357 height 500 src http images sgcafe net 2015 05 OVA1 357x500

随机推荐

  • 在 SQL 中使用 EXISTS 作为列

    是否可以使用的值EXISTS作为查询的一部分 请注意 不幸的是 由于客户端限制 我需要 SQLServer 2005 兼容的答案 因此 当返回一组结果时 其中一列是一个布尔值 它表明子查询是否会返回任何行 例如 我想返回用户名列表以及不同的
  • 如何使用 boost::asio 将 URL 转换为 IP 地址?

    所以我需要某种转向方式Protocol URLorIP Port串入串ip int port如何使用 boost ASIO 和 Boost Regex 来做这样的事情 或者是否有可能 使用获取 IPC 网络库 http cpp netlib
  • 在部分之间重新排列项目时 UICollectionView 崩溃

    我在动画中的各部分之间进行更改时遇到问题UICollectionView 我的程序总是崩溃 这是怎么回事 我有一个集合视图 它有四个部分 0 A 1 B 2 C 3 D 我想将其转换为只有三个具有相同项目的部分 0 A1 乙 丙2 D 我想
  • 如何取消拦截器中的当前请求 - Angular 4

    如你所知 可以使用拦截器在新版本的 Angular 4 中 在我的例子中 我想在某些情况下取消拦截器中的请求 那么有可能吗 也许我应该问的是 我应该采取哪种方式 如果我找到一种方法来重写对请求的一些响应而不是取消它 那也可以 我认为要切断拦
  • 无法编辑 crontab (linux Alpine)

    我在非 root 帐户下的 alpine 中遇到了 crontab 问题 bash 4 3 crontab e crontab must be suid to work properly 这是输出id命令 bash 4 3 id uid 4
  • 正则表达式:将所有内容匹配到最后一个空格而不包含它

    我想将字符串中的所有内容匹配到最后一个空格 但不包含它 举例来说 我想匹配我输入的字符bold RENATA T GROCHAL 到目前为止我已经 s https regex101 com r gM3aM2 1但是 它与最后一个空格匹配 但
  • 将具有多种数据类型的Python序列转换为张量

    我正在使用 TensorFlow r1 7 和 python3 6 5 我对 TensorFlow 也很陌生 所以如果可能的话 我希望有易于阅读的解释 我正在尝试使用此函数将输入数据转换为张量数据集tf data Dataset from
  • Pandas无法加载数据,csv编码之谜

    我正在尝试将数据集加载到 pandas 中 但似乎无法完成第 1 步 我是新手 所以如果这是显而易见的 请原谅 我已经搜索了以前的主题 但没有找到答案 数据大部分是汉字 这可能是问题所在 csv 非常大 可以在此处找到 http weibs
  • Cassandra 如何水平扩展?

    我看过一个video https www youtube com watch v B HTdrTgGNsCassandra 数据库非常有效 并且确实解释了很多有关 Cassandra 的内容 我还准备了一些关于 Cassandra 的文章和
  • OpenACC 是否会影响正常的 GPU 渲染?

    我试图弄清楚是否可以使用 OpenACC 代替正常的 CPU 串行执行调用 通常我的编程都是关于 3D 编程 或者以某种方式正常使用 GPU IE 图像处理或其他需要使用着色器的渲染类型 我想弄清楚这个图书馆是否对我有利 我问这个问题的原因
  • 如何以编程方式实现 2D 装箱?

    stackoverflow 上有一些类似的问题 但似乎都没有提供一个对 NP 难问题和算法没有深入了解的人可以理解的切实答案 如何对矩形物体进行 2D 装箱 就我而言 我尝试使用最小的空间将多个图像组合成单个图像 用作精灵表 每个图像可能具
  • 在哪里可以找到 Selenium WebDriver 的 64 位版本 chromedriver.exe?

    谁能告诉我在哪里可以找到 64 位版本的 chromedriver exe 我也用 32 位尝试过 但它没有调用 main 方法 Chromedriver 没有单独的 64 位版本 版本可在https sites google com a
  • 在 Ninject 2+ 中禁用非显式绑定类的隐式绑定/注入

    如果您从 NInject 请求未绑定的对象 则默认行为 如果有合适的构造函数可用 似乎是创建适当对象的实例 我想禁用此行为 我遇到了一个难以调试的问题 因为某些内容是自动绑定的 而不是在模块中选取我的自定义绑定 这个问题 https sta
  • CSV 和 MS-DOS CSV 格式

    我有一个自定义 java 程序 它生成一个逗号分隔值 CSV 文件 它使用以下输出格式 a b c 我的用户抱怨我的 CSV 文件不是 MS DOS CSV 格式 他们向我提供了一个 MS DOS CSV 格式的文件 我对我的 CSV 文件
  • 将 PLSQL 过程/函数标记为已弃用

    某些编程工具 例如 C 或 Java 可以将过程 函数标记为已弃用 但 Oracle PLSQL 没有内置此功能 我想知道还有另一种方法来支持此功能 我希望它们显示为 有关正在编译的任何 PL SQL 代码的 PL SQL 编译器警告 96
  • 将 xml 和 java 配置与 spring 混合使用

    我正在构建一个新的应用程序 它通过 java 配置而不是 xml 来配置 spring 此应用程序依赖于使用 xml 样式配置的模块 当我尝试启动我的应用程序时 出现以下错误 No qualifying bean of type com m
  • 从 Mac 访问 Parallels Windows localhost [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我使用 Windows 7 操作系统作为开发平台 在 Mac Parallels Desktop 5 上运行 我想从 Mac 端访问 Wi
  • postgresql:当服务器作为 Windows 服务运行时,pg_ctl 状态显示没有服务器在运行

    我有 PostgreSQL 9 4 未安装 而是自行配置 它也作为 Windows 服务安装 现在我尝试使用检查服务器的状态pg ctl exe status D data dir path 但它只显示我以管理员身份启动控制台时的状态 我的
  • PetaPoco / SQLite 聚合日期错误的解决方法

    下面是创建 SQLite 数据库 将一些数据填充到表中然后尝试检索它的完整代码 如果日期时间列周围有聚合函数 PetaPoco 将抛出错误 using System using PetaPoco class Program static v
  • 从搜索结果表 (UISearchController) 导航到视图(推送)并将搜索结果保留在适当位置

    我有一个搜索结果表 UISearchController 呈现在导航堆栈上存在的视图上 我在视图中呈现搜索控制器和表格 如下所示 searchResultsTableViewController CalendarSearchResultsT