Swift Objective-C Ruby search cocoapods ui pod iOS
Need help with PYSearch?
Click the ā€œchatā€ button below for chat support from the developer who created it, or find similar developers for support.


šŸ” An elegant search controller which replaces the UISearchController for iOS (iPhone & iPad) .

3.7K Stars 758 Forks MIT License 164 Commits 98 Opened issues

Services available

Need anything else?

Apps Using Total Downloads
Build Status Pod Version Pod Platform Pod License

  • šŸ” An elegant search controller for iOS.

QQ chat room



  • [x] Support a variety of hot search style
  • [x] Support a variety of search history style
  • [x] Support a variety of search results display mode
  • [x] Support a variety of search view controller display mode
  • [x] Support search suggestions
  • [x] Support search history (record) cache
  • [x] Support callback using delegate or block completion search
  • [x] Support CocoaPods
  • [x] Support localization
  • [x] Support vertical and horizontal screen on iPhone and iPad


  • iOS 7.0 or later
  • Xcode 7.0 or later



  • PYSearch
  • PYSearchConst
  • PYSearchViewController
  • PYSearchSuggestionViewController


  • UIColor+PYSearchExtension
  • UIView+PYSearchExtension
  • NSBundle+PYSearchExtension




Hot search style

Search history style

How to use

  • Use CocoaPods:
    • pod "PYSearch"
    • Import the main fileļ¼š
  • Manual importļ¼š
    • Drag All files in the
      folder to project
    • Import the main fileļ¼š
      #import "PYSearch.h"

Details (See the example program PYSearchExample for details)

    // 1. Create hotSearches array
    NSArray *hotSeaches = @[@"Java", @"Python", @"Objective-C", @"Swift", @"C", @"C++", @"PHP", @"C#", @"Perl", @"Go", @"JavaScript", @"R", @"Ruby", @"MATLAB"];
    // 2. Create searchViewController
    PYSearchViewController *searchViewController = [PYSearchViewController searchViewControllerWithHotSearches:hotSeaches searchBarPlaceholder:@"Search programming language" didSearchBlock:^(PYSearchViewController *searchViewController, UISearchBar *searchBar, NSString *searchText) {
        // Call this Block when completion search automatically
        // Such as: Push to a view controller
        [searchViewController.navigationController pushViewController:[[UIViewController alloc] init] animated:YES];

// 3. present the searchViewController
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:searchViewController];
[self presentViewController:nav  animated:NO completion:nil];


  • Custom search suggestions display

    // 1. Set dataSource
    searchViewController.dataSource = self;
    // 2. Implement dataSource method
  • Custom search result dispaly

    // 1. Set searchResultShowMode
    searchViewController.searchResultShowMode = PYSearchResultShowModeEmbed;
    // 2. Set searchResultController 
    searchViewController.searchResultController = [[UIViewController alloc] init];
  • Set hotSearchStyleļ¼ˆdefault is PYHotSearchStyleNormalTagļ¼‰

    // Set hotSearchStyle
    searchViewController.hotSearchStyle = PYHotSearchStyleColorfulTag;
  • Set searchHistoryStyleļ¼ˆdefault is PYSearchHistoryStyleCellļ¼‰

    // Set searchHistoryStyle
    searchViewController.searchHistoryStyle = PYSearchHistoryStyleBorderTag;
  • Set searchHistoriesCachePathļ¼ˆdefault is PYSEARCHSEARCHHISTORYCACHEPATHļ¼‰

    // Set searchHistoriesCachePath
    searchViewController.searchHistoriesCachePath = @"The cache path";
  • Set searchHistoriesCountļ¼ˆdefault is 20ļ¼‰

    // Set searchHistoriesCount
    searchViewController. searchHistoriesCount = 6;
  • Set searchResultShowModeļ¼ˆdefault is PYSearchResultShowModeCustomļ¼‰

    // Set searchResultShowMode
    searchViewController.searchResultShowMode = PYSearchResultShowModeEmbed;
  • Set searchSuggestionHiddenļ¼ˆdeafult is NOļ¼‰

    // Set searchSuggestionHidden
    searchViewController.searchSuggestionHidden = YES;


  • If you have any questions during the process or want more interfaces to customizeļ¼Œyou can issues me!
  • Instead of giving me star, it is better to throw a bug to me!
  • If you want to participate in the maintenance of this project or have a good design style, welcome to pull request!
  • If you feel slightly discomfort in use, please contact me QQ:499491531 or Email:[email protected]
  • Hope to improve this project together, let it become more powerful, able to meet the needs of most users!


All source code is licensed under the MIT License.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.