How to use modal views in swift?
Try this :)
@IBAction func addCard(sender: AnyObject) {
self.modalTransitionStyle = UIModalTransitionStyle.coverVertical
// Cover Vertical is necessary for CurrentContext
self.modalPresentationStyle = .currentContext
// Display on top of current UIView
self.present(secondViewController(), animated: true, completion: nil)
}
rocket101
Updated on June 04, 2022Comments
-
rocket101 almost 2 years
When adding an account to Mail (in preferences), you get a modal view, like this:
My question is, how do I replicate this programatically? In other words, how do I display a modal UIView over a presenting view?
Here's what I have:
import UIKit class ViewController: UIViewController { @IBAction func addCard(sender: AnyObject) { var addContact : secondViewController = secondViewController() self.modalTransitionStyle = UIModalTransitionStyle.FlipHorizontal self.modalPresentationStyle = .CurrentContext // Display on top of current UIView self.presentViewController(addContact, animated: true, completion: nil) } //Code goes on to do other unrelated things
Also, I've done the following:
- Created the View Controller in Interface builder.
- Connected the BarButtonItem "add contact" to the viewcontroller, by control-clicking, dragging to the viewcontroller of the view I want to display, and selecting "modal" in the drop down.
- Set the Class and StoryBoard UI of the presented Viewcontroller to secondViewController.
The expected behavior is that, when the UIBarButton "Add Contact" (which successfully triggers
@IBAction func addCard(sender: AnyObject)
in the code above) is pressed, secondViewController is presented as a modal view above the main view.When I run the code above, I get the error
"Use of undeclared type secondViewController"
What am I doing wrong?
NOTE: This is a re-ask of an earlier question in which I asked a similar, but slightly different question. I checked on meta, and I think it is OK - I don't want to invalidate the answers on the original question, as this is asking something slightly different. Also, in case it helps, I found some similar questions - in obj C. How do I do that in swift?