繁体   English   中英

Swift 5. 如何在按钮触摸时呈现或显示 ViewController? 没有故事板(以编程方式)

[英]Swift 5. How present or show ViewController on button touch? Without Storyboard (programmatically)

如何在按钮触摸时show()persent() VC? 我应该写什么代码?

一、使用故事板

如果您正在使用故事板。 您应该连接按钮视图故事板。

@IBAction fileprivate func handlePresentingView(_ sender: UIButton) {
  let vc = SecondVC() 
  present(vc, animated: true, completion: nil)
}

二、程序化

1:如果您在viewDidLoad以编程方式工作,请添加以下行。

    mybutton.addTarget(self, action: #selector(handlePresentingVC(_:)), for: .touchUpInside)

2:你的行动方法

  @objc func handlePresentingVC(_ sender: UIButton) {
    let vc = SecondVC()
    present(vc, animated: true, completion: nil)
  }

在我的示例中,我假设您的SecondVC视图控制器没有故事板文件。

如果SecondVC连接到故事板视图控制器,您将需要更改按钮操作方法内的secondVC对象的实例化。

1:在故事板中选择您的 SecondVC 的视图控制器。

2:给它添加一个Storyboard ID。

3:将按钮的操作方法更改为以下内容。

  @objc func handlePresentingVC(_ sender: UIButton) {
        let storyboard = UIStoryboard.init(name: "Main", bundle: nil)
        let secondVc = storyboard.instantiateViewController(withIdentifier: "SecondVC") as! SecondVC

    present(secondVc, animated: true, completion: nil)
  }

在 Swift 5 和 iOS 13 中

默认的模态呈现样式是卡片。 这在顶部显示了之前的视图控制器,并允许用户滑动显示的视图控制器。

要保留旧样式,您需要像这样修改按钮操作方法中的视图控制器:

secondVc.modalPresentationStyle = .fullScreen

这对于以编程方式创建的和故事板创建的控制器都是相同的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM