>

스코프 버튼 필터를 클릭 한 후 실제 결과가있는 것과 다른 배열과 같은 두 개의 다른 데이터 소스로 테이블 뷰를 바인딩하고 있습니다.

func bind() {
    self.searchBar.rx.searchButtonClicked
      .throttle(0.3, scheduler: MainScheduler.instance)
      .flatMapLatest { [weak self] _ -> Observable<[String]> in
        guard let `self` = self else { return .just([]) }
        guard let query = self.searchBar.text else { return .just([]) }
        self.view.endEditing(true)
        self.loadingText.isHidden = false
        let items = self.githubService.search(query: query)
        self.githubService.searchItems = items
        return items
      }
      .bind(to: self.tableView.rx.items(cellIdentifier: "cell")) { row, name, cell in
        self.loadingText.isHidden = true
        cell.textLabel?.text = name
      }
      .disposed(by: self.disposeBag)
  }
  override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()
    self.tableView.frame = self.view.bounds
  }
}
func searchBar(_ searchBar: UISearchBar, selectedScopeButtonIndexDidChange selectedScope: Int) {
        //filterContentForSearchText(searchBar.text!, scope: searchBar.scopeButtonTitles![selectedScope])
        let filteredResult = self.githubService.filteredSearch(index: selectedScope)
            filteredResult
            .bind(to: self.tableView.rx.items(cellIdentifier: "cell")) { row, name, cell in // Getting crash here
                self.loadingText.isHidden = true
                cell.textLabel?.text = name
            }
            .disposed(by: self.disposeBag)
    }

필터에 사용하는 방법입니다.

func filteredSearch(index:Int) -> Observable<[String]> {
        guard index > 0  else { return .just([]) }
        return searchItems!.filter { $0.contains("a")}
}

  • 이전 php - /로 리디렉션 건너 뛸 수 있도록 기본적으로 HTTPS를 설정 htaccess로 처음 HTTP 리디렉션
  • 다음 java - 클래스와 동일한 구성 파일을 읽으면 null이 반환됩니다