Ios Swift-uitabaritem作为UIButton

Ios Swift-uitabaritem作为UIButton,ios,swift,uikit,uitabbar,uitabbaritem,Ios,Swift,Uikit,Uitabbar,Uitabbaritem,我试图实现一个uitabar,但现在我无法在选择项时从方法中检索回调。因此,是否有可能只创建一个@IBAction func?还是需要执行其他操作?您的视图控制器应符合UITabBarDelegate并实现: - (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item; 当用户选择选项卡(即,uitabaritem)时,调用此方法。我最终解决了问题。我在Delegator类和普通类中遇到了一些问题。 这解决了我的问题

我试图实现一个
uitabar
,但现在我无法在选择项时从方法中检索回调。因此,是否有可能只创建一个
@IBAction func
?还是需要执行其他操作?

您的视图控制器应符合
UITabBarDelegate
并实现:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item;

当用户选择选项卡(即,
uitabaritem
)时,调用此方法。

我最终解决了问题。我在Delegator类和普通类中遇到了一些问题。
这解决了我的问题:
tabBar.delegate=self
在主控制器类中

为了实现UITabBar按钮,您的视图控制器应该符合UITabBarDelegate协议。您需要实施:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item;
斯威夫特:

func tabBar(_ tabBar: UITabBar, didSelectItem item: UITabBarItem!)
目标c:

- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item
您还需要在ViewController的viewDidLoad中设置委托(tabBar.delegate=self)

编辑:Swift 3答案:

func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {

}

我是否必须在代码中显式调用此方法,或者在我将其实现到UITabBarDelegate中时是否将自动调用此方法?当用户选择选项卡时,UITabBar将向其代理发送此消息。
class MyClass:UITabBarDelegate,UITabBarDelegate{
类MyClass:UITabBar、UITABBARCONTROLLEGATE、UITabBarDelegate{
以下哪种实现是正确的?此编码是否正确:
func选项卡(选项卡:UITabBar、didSelectItem项目:UITABBARIEM){
FYI我断开了默认类并连接到新的customclass,但它仍然不工作(在
main.storyboard
)。为什么要子类化UITabarItem?选项卡栏项不应该是它所在选项卡栏的委托。您可能正在将自己写入保留周期。可能重复