• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 按下 'Back' 后,TableView 单元格被导航覆盖?

[复制链接]
菜鸟教程小白 发表于 2022-12-11 19:27:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

所以我在导航栏下有一个表格 View ,当用户在搜索栏中输入内容时会显示该表格 View 。一切似乎都能找到。但是在我推送 View Controller 后,当用户在 tableview 中选择一个单元格时,我的 tableview 被搞砸了,然后从 detailViewController 返回。

• 问题:当我在 detailViewController 中按下后,导航栏覆盖了表格 View 的最顶部单元格。但这并不是一开始就发生的。

• 我试过了:

   1. Toggled 'Under Top Bars' in the storyboard
   2. Check all my constraint

This is how added the tableview onto the subview

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()
}

这就是我进入 detailViewController 的方式:

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: "rofile", 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之前:

enter image description here

从 detailViewController 按下返回按钮后:

The first index is covered by the navigation controller

enter image description here



Best Answer-推荐答案


转到 Storyboard。

选择 ViewController(不是表格 View 或导航 Controller )。

在属性检查器中,取消选中 Adjust Scroll View Insets

关于ios - 按下 'Back' 后,TableView 单元格被导航覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43329515/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap