创建显示的页面
SearchViewController * searchVC = [[SearchViewController alloc]init];
告诉搜索控制器将结果显示在创建的页面上
self.searchController = [[UISearchController alloc]initWithSearchResultsController:searchVC];
由谁来监听搜索内容发生的事件
self.searchController.searchResultsUpdater = self;
在tableview上方显示searchbar
self.MyTableView.tableHeaderView = _searchController.searchBar;
设置提供显示新页面
self.searchController.definesPresentationContext= YES;
<UISearchResultsUpdating>
代理方法
-(void)updateSearchResultsForSearchController:(UISearchController *)searchController{
设置查找条件
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] %@",searchController.searchBar.text];
过滤出结果
NSArray * results = [_dataSourceArray filteredArrayUsingPredicate:predicate];
找到应显示的结果位置searchResultsController
SearchViewController *sResultCtrl = (SearchViewController *)_searchController.searchResultsController;
设置数据源
sResultCtrl.dataSourceArray = results;
}
结果类 SearchViewController 中
- (void)setDataSourceArray:(NSArray *)dataSourceArray{
_dataSourceArray = dataSourceArray;
刷新列表
[self.myTableView reloadData];
}
0301——SearchController的更多相关文章
-
升级iOS10后SearchController焦点无法获取的问题
原来在没升级之前,是这样获取的,好使 - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.sea ...
-
0301——Notification 通知
注册消息 [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(方法) name:@"消息名字&q ...
-
0301——UItableView
- (void)viewDidLoad { [super viewDidLoad]; self.myTableView = [[UITableView alloc]initWithFrame:CGRe ...
-
基于visual Studio2013解决C语言竞赛题之0301函数求值
题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <math.h> void main() ...
-
基于visual Studio2013解决面试题之0301累加
题目
-
[03-01]JDBC基础
JDBC是什么? 1.java Database Connectivity:java访问数据库的解决方案: 2.用相同的方式访问不同的数据库,以实现与具体数据库无关的java操作界面: 3.JDBC定 ...
-
[03-01] JSP自定义标签
1.自定义标签的概念 目前我们在JSP中使用的标签都是HTML的标签,浏览器会自动解析运行,例如<form action=""></form>,这里的for ...
-
03-01 Java运算符
(1)算术运算符 A:+,-,*,/,%,++,-- B:+的用法 a:加法 b:正号 c:字符串连接符 C:/和%的区别 数据做除法操作的时候,/取得是商,%取得是余数 D:++和--的用法 a:他 ...
-
03-01:springboot 整合jsp
1.修改pom文件,添加坐标 <!-- jstl --> <dependency> <groupId>javax.servlet ...
随机推荐
-
C语言动态内存分配
考虑下面三段代码: 片段1 void GetMemory(char *p) { p = (); } void Test(void) { char *str = NULL; GetMemory(str) ...
-
codevs1322 单词矩阵
题目描述 Description 对于包含字母A到Y各一次的单词S,将其从上到下从左到右写在一个5*5的矩阵中,如单词ADJPTBEKQUCGLRVFINSWHMOXY写出来如下: A D J P T ...
-
C#--深入分析委托与事件
本篇文章将为你介绍一下 Delegate 的使用方式,逐渐揭开 C# 当中事件(Event)的由来,它能使处理委托类型的过程变得更加简单. 还将为您解释委托的协变与逆变,以及如何使用 Delegate ...
-
第八章 Qt GUI之对话框使用
第八章 Qt GUI之对话框使用 对话框可以是模态(modal)的或非模态(modeless)两种.当我们在一个用户界面程序里面对一个对话框(比如选择文件对话框)的操作没有结束前,界面的其他窗口无法操 ...
-
angularjs filter 详解
系统的学习了一下angularjs,发现angularjs的有些思想根php的模块smarty很像,例如数据绑定,filter.如果对smarty比较熟悉的话,学习angularjs会比较容易一点.这 ...
-
Linux系列教程(十二)——Linux软件包管理之yum在线管理
上一篇博客我们介绍了rpm包管理之rpm命令管理,我们发现在使用rpm命令手动安装rpm包的时候,会发现安装遇到到的依赖让你痛不欲生,安装一个rpm时会要先先安装某个依赖的rpm,而安装这个依赖的rp ...
-
Beyond Compare相同文件为何显示差异
原文地址: http://www.beyondcompare.cc/wenti/wenjian-chayi.html Beyond Compare是一款经典老牌且优秀的专业级文本比较工具,它可以很方便 ...
-
[Oracle11g] 通过伪列查询
oracle中的伪列默认第一行是1,所以可以选择<=rownum的方法选取,但是>是无法选取的.这时候需要固化伪列. 固化前可以这样查询:select * from 表名 where r ...
-
CF 700 E. Cool Slogans
E. Cool Slogans 链接 题意: 给定一个字符串S,从中选出k个子串a[1],a[2]...a[k],满足a[i]在a[i+1]中出现了两次(可以重叠),求最大的k. 分析: 建出SAM, ...
-
Linux golang使用cgo调用C++标准库问题
我们知道cgo无法直接调用c++方法,但是可以通过c包装c++方法,以达到使用的目的. C++中,我们经常会用到STL.在cgo中,如果要调用STL,需要作如下操作: //cgo LDFLAGS: - ...