3

iOS 7 と iOS 8 の両方で実行する必要があるアプリをターゲットにしています。iOS 8 では UISearchDisplayController が非推奨になっているため、iOS 8 には UISearchController を使用しました。しかし、iOS 7 では動作しません。UISearchDisplayController を使用すると、iOS 7 で動作しますしかし、両方のプラットフォームに検索コントローラーを実装する最良の方法は何ですか? iOS 8では、以下のような検索コントローラーを実装しました-

    override func viewDidLoad() {
            super.viewDidLoad()

            // Search Controller Setup
            searchController = UISearchController(searchResultsController: nil)
            searchController.searchBar.delegate = self
            searchController.searchResultsUpdater = self
            searchController.dimsBackgroundDuringPresentation = false
            searchController.searchBar.placeholder = "ব্র্যান্ড/সংস্থা/দোকান খুঁজুন"

            // Make sure the that the search bar is visible within the navigation bar.
            searchController.searchBar.sizeToFit()
            tableView.tableHeaderView = searchController.searchBar
            definesPresentationContext = true
}

SWIFTのiOS 7の場合、上記のようにUISearchDisplayControllerをプログラムで実装して、ナビゲーションバー内に検索バーが表示されるようにするにはどうすればよいですか?

4

2 に答える 2

1
    searchController = UISearchController(searchResultsController: nil)

// 検索バーの外観を変更します

    searchController.searchBar.tintColor = UIColor.whiteColor()
    searchController.searchBar.barTintColor = UIColor(red: 235.0/255.0, green: 73.0/255.0, blue: 27.0/255.0, alpha: 1.0)
    searchController.searchBar.placeholder = "Search Something"
    searchController.searchBar.prompt = "Quick Search"

// searchBar をナビゲーション バーに表示する

    searchController.searchBar.sizeToFit()
    tableView.tableHeaderView = searchController.searchBar
    definesPresentationContext = true

// 代わりにデリゲートを自分自身に設定する必要はありません

    searchController.searchResultsUpdater = self
    searchController.dimsBackgroundDuringPresentation = false // important

この後、UISearchResultsUpdating プロトコルに準拠して実装する必要があります。

func updateSearchResultsForSearchController(searchController: UISearchController)

検索のロジックが含まれます。

于 2015-03-14T06:07:35.523 に答える
1

iOS7の方法を使用してください。たとえそれが廃止されたとしても。または、iOS7 のハンドル用と iOS8 用の 2 つのコードを作成する必要があります。iOS 7 をターゲットにしている場合、Xcode は警告を表示しません。

于 2015-01-27T10:04:37.320 に答える