解除自定义viewcontroller

时间:2015-12-27 00:06:40

标签: ios swift uiviewcontroller

我目前正在使用名为" Form"的第三方。 在我的UIButton中,我实现了一个初始化自定义视图控制器的方法,该控制器是FormViewController的子类。我初始化嵌入在导航控制器中的FormViewController

在我的FormViewController课程中,我尝试了以下两种方法,但没有一种方法不起作用。

self.navigationController?.popViewControllerAnimated(true)
self.dismissViewControllerAnimated(true, completion: nil)

UIButton的代码:

@IBAction func part1Pressed(sender: AnyObject) {
    if let JSON = NSJSONSerialization.JSONObjectWithContentsOfFile("data.JSON") as? [String : AnyObject] {
        let initialValues = [
                "last_name"  : "Nordman"]
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let viewContainerVC = storyboard.instantiateViewControllerWithIdentifier("viewContainerVC")
        let sampleController = Part1_VC(JSON: JSON, initialValues: initialValues)
        let rootViewController = UINavigationController(rootViewController: sampleController)

        rootViewController.view.tintColor = UIColor(hex: "5182AF")
        rootViewController.navigationBarHidden = false

        FORMDefaultStyle.applyStyle()
        FORMSeparatorView.appearance().setSeparatorColor(UIColor.clearColor())

        self.window = UIWindow(frame: UIScreen.mainScreen().bounds)
        self.window?.rootViewController = rootViewController
        self.window?.makeKeyAndVisible()
    }
}

谢谢!

1 个答案:

答案 0 :(得分:1)

当您首先没有显示视图控制器时,您正试图将其关闭。

而是将导航控制器的根视图控制器设置为其他内容(例如,在您关闭表单后要显示的屏幕)并以模态方式显示表单视图控制器:

self.presentViewController(formVc, animated: true, completion: nil)

然后,您可以在完成表单时按预期方式关闭视图控制器。