如何为我的 UITabBarItem
设置操作
?我可以以某种方式将它从 storyboard
连接到代码吗?或者以编程方式?如果可以的话怎么办?
我的层次结构是UITabBarController
-> UINavigationController
-> UITabBarItem
很抱歉问了这个新手问题,但我真的需要一个答案。我在网上找不到任何与此相关的信息。
使用 Swift 3 和 Xcode 8
谢谢!
我厌倦了曼诺普森的回答(不起作用):
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 一样滚动到顶部。
最佳答案
基本上你这样做:
1) 确保你的类确认到 UITabBarDelegate
2)在IB中为每个标签栏项目设置标签
3) 实现 didSelectItem 方法,如下所示:
class yourclass: UIViewController, UITabBarDelegate {
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
if(item.tag == 1) {
//your code for tab item 1
}
else if(item.tag == 2) {
//your code for tab item 2
}
}
}
关于ios - 为 UITabBarItem 设置操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42681013/