我有一个自定义UIButton,它是UIBarButtonItem的子视图:
guard let tab1 = self.tabBar.items![0].value(forKey: "view") as? UIView else {return}
let button2Test = UIButton()
tab1.addSubview(button2Test)
自定义UIButton有一个目标:
button2Test.addTarget(self, action: #selector(buttonTouchUpInsideP3), for: [.touchUpInside])
button2Test.addTarget(self, action: #selector(buttonTouchInsideBoundsP3), for: [.touchDown, .touchDragEnter])
button2Test.addTarget(self, action: #selector(buttonDraggedOutOfBoundsP3), for: [.touchDragExit, .touchCancel])
基本上,在buttonTouchUpInsideP3函数中,我想通过编程/手动方式使特定索引处的UIBarButtonItem像被点击一样激发,因为UIButton的目标不允许点击下面的实际UIBarButtonItem,不幸的是。。。
我的尝试是:(我从一个过时的Q得到的),因为错误而没有成功。 请注意,我在buttonTouchUpInsideP3目标函数中调用这个函数,这些函数是在您松开按钮之后调用的。
let homeTabBarItem = self.tabBar.items![0]
UIApplication.sharedApplication.sendAction(homeTabBarItem.action, to: homeTabBarItem.target, from: nil, forEvent: nil)
您可以直接设置UIBarButtonItem的目标和操作属性。