![](/img/trans.png)
[英]Present ViewController Segue Transition Without Storyboard [Swift]
[英]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.