2017-10-17 31 views
6

Tôi đang cố gắng sử dụng tiêu chuẩn UIRefreshControlUISearchController trên UITableViewController. Tuy nhiên nó không giống như nó làm những gì nó phải. Khi làm mới, di chuyển rời khỏi thanh điều hướng với một vùng trống lớn, có lẽ là nơi spinner được coi là:Điều khiển làm mới iOS 11 + thanh tìm kiếm = thiếu spinner khi làm mới

enter image description here

Tôi có một dự án mẫu on GitHub. Đây là cách điều khiển được thiết lập:

override func viewDidLoad() { 
    super.viewDidLoad() 

    let spinner = UIRefreshControl() 
    spinner.addTarget(self, action: #selector(refresh), for: .valueChanged) 
    refreshControl = spinner 

    searchController = UISearchController(searchResultsController: nil) 
    navigationItem.searchController = searchController 
} 

Tôi đã thử gán sự kiểm soát làm mới đối với tài sản trên UITableView thay vì một trong những ngày UITableViewController, điều đó không tạo sự khác biệt.

Có ai gặp vấn đề tương tự không?

+0

tôi nhìn thấy vấn đề này quá. Nó hoạt động chính xác cho tôi nếu tôi xóa thanh tìm kiếm hoặc nếu tôi thêm thanh tìm kiếm làm tiêu đề của bảng xem thay vì đặt nó thành navigationItem. Trông giống như một lỗi khi thanh điều hướng cố xử lý cả hai. – McCygnus

+0

Tôi cũng gặp vấn đề này. Trừ khi tôi xóa thanh tìm kiếm bằng "self.navigationItem.searchController = nil" Tôi gặp sự cố. – Bassebus

+2

Tôi đã liên lạc với Apple, họ đã xác nhận rằng đó là một lỗi. –

Trả lời

0

Bạn có thể sử dụng UIRefreshController theo cách cũ, đó là như thế này:

override func viewDidLoad() { 
    super.viewDidLoad() 

    let spinner = UIRefreshControl() 
    spinner.addTarget(self, action: #selector(refresh), for: .valueChanged) 
    self.tableView.addSubview(spinner) 

    searchController = UISearchController(searchResultsController: nil) 
    navigationItem.searchController = searchController 
} 
Các vấn đề liên quan