9

Tôi đang sử dụng UISearchController để hiển thị thanh tìm kiếm và kết quả trong một UITableView. Tôi quản lý để thiết lập nó một cách chính xác, nhưng khi tôi tìm kiếm kết quả và sau đó chọn một trong các hàng trong tableview, và đẩy một bộ điều khiển xem mới để ngăn xếp chuyển hướng, tôi mong đợi thanh tìm kiếm sẽ không được hiển thị nữa. Tuy nhiên, khi tôi cố gắng này, thanh tìm kiếm từ bộ điều khiển xem đầu tiên được nhìn thấy trong bộ điều khiển xem 2:UISearchController không ẩn chế độ xem khi được đẩy

if (self.searchController == nil) { 
    self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil]; 
    self.searchController.searchResultsUpdater = self; 
    self.searchController.dimsBackgroundDuringPresentation = NO; 
    self.searchController.searchBar.scopeButtonTitles = @[]; 
    self.searchController.searchBar.delegate = self; 

    self.tableView.tableHeaderView = self.searchController.searchBar; 
} 

Một lựa chọn là để gọi self.searchController setActive:NO] bên trong didSelectRowAtIndexPath: nhưng không có một cách để làm điều này mà không cần hoạt ảnh mất tập trung khi đưa thanh tìm kiếm xuống mỗi khi kết quả tìm kiếm được chọn.

Có ai có cùng sự cố không? Có cách nào để nói với UISearchController để ẩn thanh tìm kiếm khi được đẩy không? Nó hoạt động tốt khi tôi đã sử dụng UISearchDisplayController

+0

Dịch vụ [solution] (http://stackoverflow.com/questions/29472011/uisearchcontroller-persisting-after-segue/29624748#29624748) này có hữu ích không? –

Trả lời

31

Đặt này trong viewDidLoad của bạn:

Swift:

self.definesPresentationContext = true 

Objective-C:

self.definesPresentationContext = YES; 

này đã giải quyết được vấn đề đối với tôi.

+4

Thật là một giải pháp tối nghĩa. Nhưng chắc chắn, nó đã hoạt động! –

+1

Vâng. Không thể hiểu được. nhưng cũng làm việc cho tôi! –

+1

> "

Các vấn đề liên quan