したがって、ユーザーが検索バーに何かを入力しているときに表示されるナビゲーションバーの下にtableviewがあります。そして、すべてがうまくいくように見えます。しかし、ユーザーがtableview内のセルを選択してからdetailViewControllerから戻ったときに、View Controllerをプッシュした後で、私のtableviewが乱れてしまいます。TableViewセルは 'Back'を押した後にナビゲーションの対象となりますか?
•問題:detailViewControllerを押した後で、テーブルビューの一番上のセルがナビゲーションバーで覆われています。しかし、これは初めには起こりません。
私が試してみた:•
1. Toggled 'Under Top Bars' in the storyboard
2. Check all my constraint
これは、これは私がdetailViewControllerに移動する方法ですサブビュー
func updateSearchResults(for searchController: UISearchController) {
// When the user is typing
if let searchText = searchController.searchBar.text, !searchText.isEmpty {
// add the tableview onto the subview
view.addSubview(tableView)
self.searchController.dimsBackgroundDuringPresentation = false
// filter the username array, to match the text in the search bar
filteredUsernames = unfilterdUsernames.filter({ (username) -> Bool in
return username.lowercased().contains(searchText.lowercased())
})
if let usernames = filteredUsernames {
getUsersFromUsernames(usernames: usernames, completion: { (users) in
self.filteredUsers = users
})
}
// else, the user is not typing anything. Remove the tableview from the subview
} else {
self.searchController.dimsBackgroundDuringPresentation = false
tableView.removeFromSuperview()
filteredUsernames = unfilterdUsernames
}
// reload tableview data
tableView.reloadData()
}
上にテーブルビューを追加する方法です:
tableView(_ tableView:UITableView、 didSelectRowAt indexPath:IndexPath)
// the profile view that I want to display, after the user select one of the tableViewCell
let profileController = UIStoryboard(name: "Profile", bundle: nil).instantiateViewController(withIdentifier: "profile") as? ProfileCollectionViewController
// user is the value that I want to transfer to the profileController
// which user from the indexPath in tableView
if let user = filteredUsers?[indexPath.row] {
userToPass = user
// set the delegate to self
profileController?.userDataDelegate = self
// push a navigationController to profileController
self.navigationController?.pushViewController(profileController!, animated: true)
detailViewControllerに行く前に:
detailViewControllerから背中押されたボタンの後:最初のインデックスはで覆われている
ナビゲーションコントローラ
行が実際に存在し、カバーされていますか?あるいは、テーブルの唯一の行「バビ」ですか?言い換えれば、あなたが「プロフィール」ビューから「戻ってくる」ときに、テーブルをプルダウンして一番上の行(「ジャジャン」を含む)を見ることができますか? – DonMag
@DonMagはい、一番上の行は 'jajang'ですが、一番上の行はナビゲーションバーで覆われています(詳細ビューから戻るボタンを押した後)。意味私はまだ下にスクロールすることができます。最初はそれがそうではなかった。 –
ok - あなたが下にスクロールして指を離すと、一番上の行*は見えますか?それとも、ナビゲーションバーの下に「スナップバック」していますか? – DonMag