我以前做过很多次转场,但从来没有从 UIBarButtonItem 开始转场。
我就是不明白这到底出了什么问题。我不断收到同样的错误。 libc++abi.dylib:以 NSException 类型的未捕获异常终止。
我不想用这个segue传递任何数据,只是显示 Controller 。
我做错了什么??????
let badge = UILabel(frame: CGRect(x: 20, y: 10, width: 20, height: 20))
badge.layer.borderColor = UIColor.clear.cgColor
badge.layer.borderWidth = 2
badge.layer.cornerRadius = badge.bounds.size.height / 2
badge.textAlignment = .center
badge.layer.masksToBounds = true
badge.textColor = .white
badge.font = UIFont(name: "AppleSDGothicNeo-Medium", size: 12)
badge.backgroundColor = .red
badge.text = "\(snapshot.childrenCount.description)"
let navBarFollowBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
navBarFollowBtn.setImage(UIImage(named: "profileNewFollower"), for: .normal)
navBarFollowBtn.addTarget(self, action: Selector(("navigateToNextViewController")), for: UIControlEvents.touchUpInside)
navBarFollowBtn.addSubview(badge)
let barBtn = self.navBarNewFollower
barBtn?.customView = navBarFollowBtn
self.navigationItem.leftBarButtonItem = barBtn
// self.performSegue(withIdentifier: "newFollowerSegue", sender: self)
} else {
self.navBarNewFollower.isEnabled = true
}
})
}
setUpBadgeCountNewFollowers()
//Segue to NewFollowers
func navigateToNextViewController() {
print("Button Tapped")
self.performSegue(withIdentifier: "newFollowerSegue", sender: self)
}
最佳答案
您的选择器中有双括号,我猜这就是问题所在:
navBarFollowBtn.addTarget(self, action: Selector(("navigateToNextViewController")), for: UIControlEvents.touchUpInside)
对于 swift 4 将其更改为:
navBarFollowBtn.addTarget(self, action: #selector(navigateToNextViewController), for: .touchUpInside)
@objc func navigateToNextViewController() {
print("Button Tapped")
self.performSegue(withIdentifier: "newFollowerSegue", sender: self)
}
关于Swift Segue 从 UIBarButtonItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48100925/