我尝试关闭并使用以下命令返回上一个viewController:
class func closeViewController()
{
presentingViewController?.dismissViewControllerAnimated(true, completion: nil)
}
但是这给了我一个编译错误。
如果我删除“class”标识符,它可以工作,但我需要这个函数是类函数
答案 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)