从类func返回上一个ViewController

时间:2015-06-23 13:16:47

标签: ios swift uiviewcontroller

我尝试关闭并使用以下命令返回上一个viewController:

class func closeViewController()
{
    presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
}

但是这给了我一个编译错误。

如果我删除“class”标识符,它可以工作,但我需要这个函数是类函数

2 个答案:

答案 0 :(得分:4)

仅仅因为您收到来自其他类的回调并不意味着您需要将closeViewController方法作为类方法。它可能不应该是一种类方法。

presentsViewController是UIViewController的实例方法。开头有一个隐含的“自我”:

self.presentingViewController?.dismissViewControllerAnimated(
  true, completion: nil)

但是,对类执行类方法,而不是实例,因此self是类,而不是实例。

如果由于某种原因确实需要将它作为类方法,则需要将当前视图控制器或呈现视图控制器作为参数传递给方法。

class func closeViewController(theModal: UIViewController)
{
  theModal.dismissViewControllerAnimated(
    true, completion: nil)
}

答案 1 :(得分:0)

试试这段代码:

self.dismissViewControllerAnimated(true, completion: nil)