iOS搜索視圖小技巧

小浣熊博客地址

  1. 移除搜索視圖時(shí)清空搜索框內(nèi)的文字內(nèi)容: self.searchBar.text = nil;
  2. 將歷史搜索或熱門搜索的標(biāo)簽內(nèi)容顯示到輸入框:
    1>. 情形分析: 搜索視圖在 A 控制器上,要實(shí)現(xiàn)點(diǎn)擊搜索視圖上的搜索標(biāo)簽, push跳轉(zhuǎn)到 B 控制器,并且將標(biāo)簽內(nèi)容傳入到 B 控制器所在的 UINavigationBar的搜索框中顯示.
    2>. 思路: 點(diǎn)擊搜索標(biāo)簽,利用通知,讓A控制器push到B控制器,同時(shí)利用collectionViewCell的索引將標(biāo)簽內(nèi)容通過用戶偏好設(shè)置存儲(chǔ)到本地,然后在B控制器的 - (void)viewDidLoad;方法中通過Key把標(biāo)簽的內(nèi)容設(shè)置到搜索框,最后在 - (void)viewDidDisappear:(BOOL)animated;中通過Key清除指定的用戶偏好內(nèi)容.
    3>. 具體代碼如下:
// 這段代碼寫在搜索視圖中
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"===> %@",self.array[indexPath.row]);   // 需要將搜索關(guān)鍵字傳入搜索框
    // 本地存儲(chǔ)傳值
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:_data[indexPath.row] forKey:@"_data[indexPath.row]"];
    //設(shè)置同步
    [defaults synchronize];
    // 通知控制器 A 去push跳轉(zhuǎn)到 B
    NSDictionary *dict = [[NSDictionary alloc]initWithObjectsAndKeys: self.array[indexPath.row],@"self.array[indexPath.row]", nil];
    [[NSNotificationCenter defaultCenter] postNotificationName:通知名 object: self.array[indexPath.row] userInfo: dict];
}
這段代碼寫在 A 控制器:
- (void)viewDidLoad {
    [super viewDidLoad];
    [self loadData];
    self.view.backgroundColor = [UIColor whiteColor];
    //注冊(cè)通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sendTextInfomation:) name:LMSearchTextInfomationNotification object:nil];
}
//銷毀通知:
- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self name:nil object:self];
}
這段代碼寫在通知觸發(fā)的方法中:
// 點(diǎn)擊標(biāo)簽的時(shí)候通知nav push到搜索結(jié)果控制器
- (void)sendTextInfomation:(NSNotification *)text {
    NSLog(@"通知傳遞過來 == %@", text.userInfo[@"self.array[indexPath.row]"]);
    self.text = text.userInfo[@"self.array[indexPath.row]"];
    NSLog(@"通知內(nèi)容 == %@", self.text);
    // 點(diǎn)擊鍵盤上的search調(diào)用這個(gè)方法
    [_searchView removeFromSuperview];    //移除搜索視圖
    [_sv removeFromSuperview];    // 搜索視圖放在UIScrollView上的(看具體情況),因此同時(shí)需要移除A控制器的子視圖scrollView.

    // 移除視圖同時(shí)要收起鍵盤,然后發(fā)出通知讓控制器push一個(gè)新控制器
    [[[UIApplication sharedApplication] keyWindow] endEditing:YES];
    B *vc = [[B alloc]init];
    vc.hidesBottomBarWhenPushed = YES;
    [self.navigationController pushViewController:vc animated:YES];
}
這段代碼寫在 B 控制器中:
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor whiteColor];
    //本地存儲(chǔ)傳遞過來的值
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    // 取指定的本地值
    self.text = [defaults valueForKey:@"self.array[indexPath.row]"];
    NSLog(@"本地存儲(chǔ)傳值內(nèi)容 == %@", self.text);
    // 顯示到搜索框
    _searchBarView.text = self.text;
}
- (void)viewDidDisappear:(BOOL)animated {
    // 清除指定的用戶偏好存儲(chǔ)
    [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"_data[indexPath.row]"];
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末示惊,一起剝皮案震驚了整個(gè)濱河市碘勉,隨后出現(xiàn)的幾起案子口蝠,更是在濱河造成了極大的恐慌奕翔,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脾还,死亡現(xiàn)場(chǎng)離奇詭異缕棵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)赠潦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門叫胖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人她奥,你說我怎么就攤上這事瓮增。” “怎么了哩俭?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵绷跑,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我凡资,道長(zhǎng)砸捏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任隙赁,我火速辦了婚禮垦藏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘伞访。我一直安慰自己掂骏,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布厚掷。 她就那樣靜靜地躺著弟灼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蝗肪。 梳的紋絲不亂的頭發(fā)上袜爪,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音薛闪,去河邊找鬼辛馆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛豁延,可吹牛的內(nèi)容都是我干的昙篙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼诱咏,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼苔可!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起袋狞,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤焚辅,失蹤者是張志新(化名)和其女友劉穎映屋,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體同蜻,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棚点,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了湾蔓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘫析。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖默责,靈堂內(nèi)的尸體忽然破棺而出贬循,到底是詐尸還是另有隱情,我是刑警寧澤桃序,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布杖虾,位于F島的核電站,受9級(jí)特大地震影響葡缰,放射性物質(zhì)發(fā)生泄漏亏掀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一泛释、第九天 我趴在偏房一處隱蔽的房頂上張望滤愕。 院中可真熱鬧,春花似錦怜校、人聲如沸间影。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)魂贬。三九已至,卻和暖如春裙顽,著一層夾襖步出監(jiān)牢的瞬間付燥,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工愈犹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留键科,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓漩怎,卻偏偏與公主長(zhǎng)得像俊啼,于是被迫代替她去往敵國(guó)和親脚粟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子旱物,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理羊壹,服務(wù)發(fā)現(xiàn),斷路器叁执,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • 翻譯自“View Controller Programming Guide for iOS”茄厘。 1 彈出視圖控制器...
    lakerszhy閱讀 3,462評(píng)論 2 20
  • 翻譯自“View Controller Programming Guide for iOS”矮冬。 1 定義子類 使用...
    lakerszhy閱讀 2,363評(píng)論 0 5
  • 【成長(zhǎng)感悟】培訓(xùn)師成長(zhǎng)的三選四備,有選擇蚕断,有準(zhǔn)備欢伏,選擇是確定目標(biāo)方向入挣,準(zhǔn)備是持續(xù)的投入行動(dòng)亿乳,目標(biāo)決定投入,選擇...
    無憂俠閱讀 176評(píng)論 0 0
  • 在這個(gè)操蛋的青春径筏,我們過著醉生夢(mèng)死一般的生活葛假,向往著從沒嘗試過的事物,企圖能夠?yàn)樽约憾虝旱娜松砑痈嗟纳省?每...
    莫不逢閱讀 1,464評(píng)論 0 50