Swift Segue 从 UIBarButtonItem

标签 swift xcode segue

我以前做过很多次转场,但从来没有从 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/

相关文章:

ios - NSUnknownKeyException : this class is not key value coding-compliant for the key

view - 从一个 View 过渡到另一个 SwiftUI

swift - 在 parent 之间切换 - SpriteKit

swift - 从标准 Swift 基于文档的应用程序的打开对话框中获取 URL

ios - .xib 文件如何自动关联并加载到我的 ViewController?

iphone - 归档有关符号链接(symbolic link)的 iOS 项目时出错

ios - 无法在某些 iPhone 模拟器中保存 UserDefault 数组 (swift 3)

ios - iOS 应用程序可以处理的最大数据量是多少?

ios - 在 ibaction 后触发 segue

swift - 转到另一个 ImageView 以获取全尺寸图像