swift 适用于iOS的SearchViewController 11.启用大标题。谢谢:【Swift】UISearchControllerの使い方。検索结果用ビューコントローラーを呼び出す。はじは

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 适用于iOS的SearchViewController 11.启用大标题。谢谢:【Swift】UISearchControllerの使い方。検索结果用ビューコントローラーを呼び出す。はじは相关的知识,希望对你有一定的参考价值。

<img width="320" src="https://user-images.githubusercontent.com/8636660/31306202-e0dbbe4c-ab85-11e7-95da-f11906475e86.png"></img>
//
//  SearchViewController.swift
//  Gistan
//
//  Created by Hiroka Yago on 2017/10/07.
//  Copyright © 2017 miso. All rights reserved.
//

import UIKit

class SearchViewController: UITableViewController, UISearchResultsUpdating {

    var searchController = UISearchController(searchResultsController: nil)

    var searchResults = [String]()

    let dataList = ["月刊コロコロコミック(小学館)",
                    "コロコロイチバン!(小学館)",
                    "最強ジャンプ(集英社)",
                    "Vジャンプ(集英社)",
                    "週刊少年サンデー(小学館)",
                    "週刊少年マガジン(講談社)",
                    "週刊少年ジャンプ(集英社)",
                    "週刊少年チャンピオン(秋田書店)",
                    "月刊少年マガジン(講談社)",
                    "月刊少年チャンピオン(秋田書店)",
                    "月刊少年ガンガン(スクウェア)",
                    "月刊少年エース(KADOKAWA)",
                    "月刊少年シリウス(講談社)",
                    "週刊ヤングジャンプ(集英社)",
                    "ビッグコミックスピリッツ(小学館)",
                    "週刊ヤングマガジン(講談社)"]

    override func viewDidLoad() {
        super.viewDidLoad()

        navigationController!.navigationBar.prefersLargeTitles = true

        searchController.searchResultsUpdater = self
        searchController.dimsBackgroundDuringPresentation = false
        navigationItem.hidesSearchBarWhenScrolling = false
        navigationItem.searchController = searchController
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "TestCell", for: indexPath)
        if( searchController.searchBar.text != "" ) {
            cell.textLabel!.text = searchResults[indexPath.row]
        } else {
            cell.textLabel!.text = dataList[indexPath.row]
        }
        return cell
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if( searchController.searchBar.text != "" ) {
            return searchResults.count
        } else {
            return dataList.count
        }
    }

    func updateSearchResults(for searchController: UISearchController) {
        searchResults = dataList.filter { data in
            return data.contains(searchController.searchBar.text!)
        }

        tableView.reloadData()
    }
}

以上是关于swift 适用于iOS的SearchViewController 11.启用大标题。谢谢:【Swift】UISearchControllerの使い方。検索结果用ビューコントローラーを呼び出す。はじは的主要内容,如果未能解决你的问题,请参考以下文章

适用于 iOS 的 Swift NativeModule 始终为空

XCUIApplication 仅适用于 iOS 9.0 或更新版本,swift3

适用于 iOS 7.1 的带有 swift 的 SKShapeNode

Swift 中适用于 iOS 9 和 iOS 10 的 CoreData 堆栈

Swift 和 TestFlight 适用于 iOS 8 但不适用于 iOS 7

为 Swift 更新适用于 iOS 14 的 Google IMA SDK 隐私政策