通过编程按钮执行搜索

时间:2018-10-20 04:02:58

标签: swift xcode

我正在使用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背景。

enter image description here

我认为我正确执行了Segue。为什么找不到该segue?如何单击按钮才能将其触发?

感谢您抽出宝贵时间阅读本文并为我提供帮助。

1 个答案:

答案 0 :(得分:1)

  • 您建立了segue吗?在IB中 ⌃-拖动从源控制器(黄色图标)到目标视图控制器)?
  • 您是否已指定标识符?选择segue,按⌥⌘4,然后在标识符字段中键入jsonb