How to use modal views in swift?

跟風遠走 提交于 2019-12-19 03:21:39

问题


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:

  1. Created the View Controller in Interface builder.
  2. 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.
  3. 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?


回答1:


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)
}


来源:https://stackoverflow.com/questions/25223607/how-to-use-modal-views-in-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!