【问题标题】:perform segue from programmatically button从编程按钮执行 segue
【发布时间】:2018-10-20 04:02:57
【问题描述】:

我正在使用 swift 4

我有一个标签栏控制器,我在其中以编程方式在标签栏中间创建了一个按钮。单击按钮后,我想执行 segue 并显示下一个视图。我创建了从 tabar 视图到下一个视图的 segue,并将其命名为 moveToNext。

这是按钮

let button = UIButton.init(type: .custom)

override func viewDidLoad() {
    super.viewDidLoad()


    let blue = UIColor(red: 53/255, green: 92/255, blue: 125/255, alpha: 1.0)

    UITabBar.appearance().tintColor = blue

    button.setTitle("+", for: .normal)
    button.titleLabel?.font = .systemFont(ofSize: 32)
    button.setTitleColor(.white, for: .normal)
    button.setTitleColor(.white, for: .highlighted)

    button.backgroundColor = blue
    button.layer.cornerRadius = 32
    button.layer.borderWidth = 1.5
    button.layer.borderColor = blue.cgColor
    //button.layer.borderColor = UIColor.green.cgColor


    button.addTarget(self, action:#selector(self.buttonClicked), for: .touchUpInside)

    self.view.insertSubview(button, aboveSubview: self.tabBar)

    UITabBar.appearance().backgroundImage = UIImage.colorForNavBar(color: .white)
    UITabBar.appearance().shadowImage = UIImage.colorForNavBar(color: blue)

}


@objc func buttonClicked() {
    print("Button Clicked")
    self.performSegue(withIdentifier: "moveToNext", sender: self)

}

我收到以下错误

'Receiver (<Pac.CustomTabBarViewController: 0x7fc94285be00>) has no segue with identifier 'moveToNext''
*** First throw call stack:

我是 swift 和 Xcode 的新手,来自 java 背景。

我认为我正确地执行了转场。为什么它找不到 segue,我如何通过单击按钮来触发它?

感谢您花时间阅读并帮助我。

【问题讨论】:

  • 在发这篇文章之前我已经看到了。我说在我拖过去的故事板上做了一个segue并命名它。
  • 我觉得跟tabbar有关系
  • 你需要将segue标签栏拖到下一个视图控制器
  • 您能否分享您制作的 segue 的屏幕截图,其中源视图控制器和目标视图控制器也在现场,右侧的属性检查器也打开了?

标签: swift xcode


【解决方案1】:
  • 您是否建立了segue?在 IB ⌃-drag 从源控制器(黄色图标)到目标视图控制器)?
  • 您是否指定了标识符?选择 segue,按 ⌥⌘4 并在 Identifier 字段中输入 moveToNext

【讨论】:

  • 是的,我已经做到了。我以为我在帖子中指定了这一点。这就是我发帖的原因,因为我做的一切都是正确的。
  • 有几种方法可以做到这一点,但无论如何都会犯错误(例如错误的segue源对象)
  • 我明白了。有 4 个 tabor 控件。我用错了
猜你喜欢
  • 2012-06-30
  • 1970-01-01
  • 2013-07-17
  • 1970-01-01
  • 2015-09-28
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多