私は私のUserSearchControllerに検索バーがあります。別のクラスの変数に迅速にアクセスするにはどうすればいいですか?
class UserSearchController: UICollectionViewController, UICollectionViewDelegateFlowLayout,UISearchBarDelegate, UISearchDisplayDelegate {
lazy var searchBar: UISearchBar = {
let sb = UISearchBar()
sb.placeholder = "Search"
sb.barTintColor = UIColor.gray
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).backgroundColor = UIColor.rgb(red: 230, green: 230, blue: 230, alpha: 1)
sb.keyboardAppearance = .dark
sb.delegate = self
return sb
}()
そして私はアクセスしたいとUserSearchCvからの検索バー非表示:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let user = filteredUsers[indexPath.item]
print(user.username)
let userProfileController = UserProfileController(collectionViewLayout: UICollectionViewFlowLayout())
(superview?.next as? UIViewController)?.navigationController?.pushViewController(userProfileController, animated: true)
UserSearchController.searchBar.isHidden = true //Something like this but it compiles an error
}
これはあなたを助けるかもしれません。 https://stackoverflow.com/documentation/ios/434/passing-data-between-view-controllers/2520/using-the-delegate-pattern-passing-data-back#t=201708291155386938448 –
'UserSearchController()。searchBar .isHidden = true'は、コントローラのインスタンスを作成しているので、コンパイルする必要があります。あなたがやっているやり方は、クラスのインスタンスではなく、 'UserSearchController'クラスそのものです。 'UserSearchController'のインスタンスへの参照が必要です。 –
UserSearchCv内にUserSearchControllerのインスタンスを宣言していますか?そのインスタンスを使用してください – 3stud1ant3