【发布时间】:2017-06-30 13:09:30
【问题描述】:
我有以下代码,我试图在 UIViewcontroller 上实现“滚动到顶部”并在另一个 UIViewController 上实现“滚动到开头”。
第一个 VC 有一个表视图,第二个 VC 有一个集合视图。
-NearMeViewController-
override func viewDidLoad() {
super.viewDidLoad()
self.tabBarController?.delegate = self
//....
}
extension NearMeViewController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let tabBarIndex = tabBarController.selectedIndex
if tabBarIndex == 0 {
self.nearMeTable.setContentOffset(CGPoint.zero, animated: true)
}
}
}
-MapSearchViewController-
override func viewDidLoad() {
super.viewDidLoad()
self.tabBarController?.delegate = self
//....
}
extension MapSearchViewController: UITabBarControllerDelegate {
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
let tabBarIndex = tabBarController.selectedIndex
if tabBarIndex == 2 && requests.mapEventData.count > 0 {
self.resultsCollectionView?.scrollToItem(at: IndexPath(row: 0, section: 0),
at: .left,
animated: true)
}
}
}
当然,它们都连接到同一个 UITabBar。 问题是当我打开应用程序并按下 tabBarIndex 0 时,它会滚动到表格视图的顶部。
然后我更改 VC 并尝试按 tabBarIndex 2,因此它会将我带到集合视图的第一项。
之后我回到第一个 VC,当我尝试按下 tabBarIndex 0 时,tableview 没有滚动到顶部(就像我第一次打开应用程序时所做的那样)。
但是带有集合视图的第二个 VC 工作正常。
知道为什么会发生这种情况吗?
【问题讨论】:
标签: ios swift uiviewcontroller uitabbarcontroller