【问题标题】:Swift Segue from UIBarButtonItem来自 UIBarButtonItem 的 Swift Segue
【发布时间】:2018-01-04 17:53:46
【问题描述】:

我以前做过很多转场,但从来没有从 UIBarButtonItem 开始。

我只是不知道这有什么问题。我不断收到同样的错误。 libc++abi.dylib:以 NSException 类型的未捕获异常终止。

我不想通过这个 segue 传递任何数据,只是显示控制器。

我做错了什么??????

                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)

    }

【问题讨论】:

  • 不起作用。试过了
  • 你能显示整个错误吗?它通常有关于这个问题的线索。
  • 其余的错误在哪里?
  • 线程 1:信号 SIGABRT

标签: swift xcode segue


【解决方案1】:

你的选择器中有双括号,猜猜这就是问题所在:

        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)
    }

【讨论】:

  • 不起作用。 Xcode 不断将代码更改为我的代码
猜你喜欢
  • 2017-07-08
  • 2017-08-21
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多