我遇到了一个问题,我无法向自己解释,我希望你能指向我在正确的方向,甚至提供我适合的解决方案UITableView跳到顶部,显示SearchBar,当“隐藏底部酒吧推”是从细胞继续为真
我有一个UITableViewController嵌入UINavigationController与自定义原型UITableViewCell。在我的Storyboard中,我添加了一个Segue来显示(推送)一个详细视图控制器到堆栈上。这工作正常,迄今为止没有任何意外。但是,当我按下我的详细信息视图控制器上的后退按钮时,它会返回到我的UITableViewController,但是这次,TableView跳转到顶部并显示TableViews HeaderView,其中放置了一个SearchBar。
发生这种情况时,我检查了“关于推动隐藏底栏”我的详细视图控制器,我需要这样的细节视图控制器隐藏在我嵌入NavigationController中的UITabBarController标签栏上。
我的层次看起来是这样的:
-UITabBarController
--UINavigationController
---UITableViewController (my table view controller)
--(more view controllers for other tabs)
奇怪的是,这不会立即发生。当我回去的时候,起初一切看起来不错,但是在很短的时间之后,它真的跳到了tableview的最顶端。
我登录意见表contentOffset及其类似这样之后我按后退按钮:
T0.000: viewDidLayoutSubviews => -20
T0.011: viewWillAppear => 44
T0.023: viewDidLayoutSubviews => -20
T0.530: viewDidAppear => -20 (correct value, same as before the push)
T0.540: viewDidLayoutSubviews => -64 (wrong value, showing search bar)
轮半秒钟后不会发生什么事?为什么突然跳到顶端?我从来没有自己设置偏移量。它由系统自动完成,如果我在我的详细信息视图控制器中取消选中“隐藏底部栏”,则行为按预期工作,这意味着如果我之前可以看到搜索栏,它在后面可见并且是否可见隐藏之前,其仍然隐藏在之后。