searchcontroller」カテゴリーアーカイブ

searchcontroller(swift4)

平成30年3月23日(金曜日)

以下リンク参考OK!!
但し、UISearchResultsUpdating デリゲート追加と同時に以下も追加(追加するまでerror!!)
func updateSearchResults(for searchController: UISearchController) {}

①テーブル
tableView.tableHeaderView = searchController.searchBar
②コレクション
collectionView.addSubview(searchController.searchBar)
③ナビゲーションバー
navigationItem.searchController = searchController
又は、
self.navigationItem.titleView = searchController.searchBar

[iOS 11] iOS 11で追加されたUINavigationItemのsearchControllerプロパティを使ってSearchBarをナビゲーションインターフェースに統合する

【Swift3】UITableViewで使う、シンプルな検索バーのサンプル2選

Storyboard を使わず UICollectionView に UISearchBar を追加したメモ

objective-c searchResultsController tableView

平成30年3月7日(水曜日)

tableViewの高さ設定


    ((UITableViewController *)self.searchController.searchResultsController).tableView.rowHeight = 66.0;

その他、searchからの戻りとして、以下

//----------------------------------------------------------------------------
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
    self.fetchedResultsController = nil;
    //[NSFetchedResultsController deleteCacheWithName:@"Master"];
    [self.tableView endUpdates];
    //[self.tableView reloadData];
}
//----------------------------------------------------------------------------

searchcontroller(objective-c)その2

平成30年2月27〜28日(火曜日)

対策:searchDisplayController’ is deprecated: first deprecated in iOS 8.0

対策完了。
基本は、ui-searchcontroller-objcによる。

概要は以下。

.m
@property (nonatomic, strong) UISearchController *searchController;

MasterViewController.m
Delegate追加
@interface MasterViewController () 


viewDidLoadの最後(最初に置くと、error)
[self initializeSearchController];


updateSearchResultsForSearchControllerの設定
// フィルタ作業後tableViewをreload
filterContentForSearchText
[((UITableViewController *)self.searchController.searchResultsController).tableView reloadData];


prepareForSegue
if ( self.searchController.active ) {}による切り替え


サーチバー設定
[self.searchController.searchBar setSearchBarStyle:UISearchBarStyleMinimal];


iOS 11.0

    //add the UISearchController's search bar to the header of this table
    //self.tableView.tableHeaderView = self.searchController.searchBar;
    if ([self.navigationItem respondsToSelector:@selector(setSearchController:)]) {
        // For iOS 11 and later, we place the search bar in the navigation bar.
        if (@available(iOS 11.0, *)) {
            self.navigationController.navigationBar.prefersLargeTitles = NO;
        } else {
            // Fallback on earlier versions
        }
        if (@available(iOS 11.0, *)) {
            self.navigationItem.searchController = self.searchController;
        } else {
            // Fallback on earlier versions
        }
        // We want the search bar visible all the time.
        if (@available(iOS 11.0, *)) {
            // 今回はYES(好みか)
            self.navigationItem.hidesSearchBarWhenScrolling = YES;
        } else {
            // Fallback on earlier versions
        }
    }
    else {
        // For iOS 10 and earlier, we place the search bar in the table view's header.
        self.tableView.tableHeaderView = self.searchController.searchBar;
    }

searchcontroller(objective-c)

平成30年2月26日(月曜日)

サンプルソースコード
ios-uisearchcontroller-objc

APPLEサンプルソースコード
Objective-C/TableSearch/APLProduct.m

Swift 4
iOS 11で追加されたUINavigationItemのsearchControllerプロパティ

iOS8以降はUISearchControllerを使え

動作未確認
ios-samples/ios8/TableSearch/TableSearch/MainTableViewController.cs