【发布时间】:2017-03-08 20:11:03
【问题描述】:
如何为我的UITabBarItem 设置action?我可以以某种方式将它从storyboard 连接到代码吗?还是以编程方式?如果是这样,怎么办?
我的层次结构是UITabBarController -> UINavigationController -> UITabBarItem
很抱歉这个问题很愚蠢,但我真的需要一个答案。我在网上找不到任何关于此的信息。
使用 Swift 3 和 Xcode 8
谢谢!
我厌倦了 Mannopson 的回答(没用):
class BarsViewController: UITableViewController,UISearchResultsUpdating,UISearchBarDelegate,UISearchDisplayDelegate,UITabBarControllerDelegate{
override func viewDidLoad() {
super.viewDidLoad()
self.tabBarController?.delegate = self
}
func tabBarController(tabBarController: UITabBarController, didSelect viewController: UIViewController) {
if viewController.tabBarItem.tag == 1 {
self.tableView.setContentOffset(.zero, animated: true)
}
}
}
extension UITableView {
func scrollToTop(animated: Bool) {
setContentOffset(CGPoint.zero, animated: animated)
}
}
silentBob 回答对我不起作用:
class BarsViewController: UITableViewController,UISearchResultsUpdating,UISearchBarDelegate,UISearchDisplayDelegate,UITabBarControllerDelegate{
override func viewDidLoad() {
super.viewDidLoad()
self.tabBarController?.delegate = self
}
func tabBarController(tabBarController: UITabBarController, didSelect viewController: UIViewController) {
if viewController.tabBarItem.tag == 1 {
tableView.scrollToRowAtIndexPath(NSIndexPath(forRow: 0, inSection: 0), atScrollPosition: .Top, animated: true)
}
}
}
我也尝试了 Tushar Sharma 的回答,但效果不佳。
我想要做的是,当您在tableView 中向下滚动时,您将点击当前的Tabbaritem,tableView 将像 intagram 一样滚动到顶部。
【问题讨论】:
-
你的意思是 UITabBarItem 吗?
-
是的!对不起,我会解决这个问题。
-
使用一个标签,然后就可以检测当前选中的是哪个标签栏项
-
可以帮我写代码吗?我不知道我该怎么做...
-
@Mannopson 我非常感谢您的帮助
标签: ios swift xcode uitabbar uitabbaritem