【发布时间】:2020-06-27 09:31:24
【问题描述】:
我想在我的UITabBarController 中的所有viewControllers 上实现一个scrollToTop 方法。以下是UITabBarControllerDelegate 中的一个方法和触发器,当我选择一个选项卡时。
问题是,当viewController 处于活动状态时,我只想滚动到viewController 的顶部。这样用户可以在不丢失滚动位置的情况下切换选项卡,但是当他触摸当前活动选项卡的tabBar中的选项卡时,它应该滚动到顶部。
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
if viewControllerThatIsCurrentlyActiveInTabBar == viewController {
scrollToTop()
}
}
基本上,我需要上面 if 语句的那个条件。
我试过:viewController.isViewLoaded、tabBarController.selectedViewController == viewController、viewController.isBeingPresented。这些条件都不起作用。它要么不会触发scrollToTop(),要么会一直触发,这样您在更改选项卡时就会失去滚动位置,因为它会立即滚动到顶部。
【问题讨论】:
标签: ios swift uiviewcontroller uitabbarcontroller