在iOS中,实现点击搜索结果隐藏搜索结果的方法。

不知道有没有别的什么的好的方法,最近在实现一个需求(点击搜索,然后输入搜索内容,显示搜索出来的结果,然后点击搜索结果,在当前页面显示所点击的结果的详细的信息)。遇到的问题是,点击搜索结果的时候,搜索的结果不隐藏,那么你就看不到被它挡着的东西了。

解决办法是

 for (id view in subViews) {     

       if ([view isKindOfClass:[UIButton class]]) {

            UIButton *cancelButton = (UIButton *)view;

             [cancelButton setTitle:@"取消" forState:UIControlStateNormal];

            //  获取点击"取消"button的响应事件(actionsForTarget 这种方法返回的是一个数组)

            self.cancelSearchSELString = [[cancelButton actionsForTarget:mySearchBar forControlEvent:UIControlEventTouchUpInside] objectAtIndex:0];

            //  响应通知,运行方法直接用上面获得的响应事件方法,转换一下(这是个知识点,能够扩展下)

            [[NSNotificationCenter defaultCenter] addObserver:mySearchBar selector:NSSelectorFromString(self.cancelSearchSELString) name:@"cancelSearch" object:nil];

        }

    }

 

 

然后在点击事件中

 [[NSNotificationCenter defaultCenter] postNotificationName:@"cancelSearch" object:nil];

            //  公布---响应---取消通知

            [[NSNotificationCenter defaultCenter] removeObserver:mySearchBar name:@"cancelSearch" object:nil];

 就行了。

posted @ 2015-11-09 17:08  脱贫致富,多喝热水  阅读(626)  评论(0编辑  收藏  举报