大家好,我正在学习Swift,这里需要一些帮助。
用户正在注册并选择他们的图像。关闭图像选择器后,我希望显示ComposeViewController。
代码如下:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: NSDictionary!) {
let pickedImage:UIImage = info.objectForKey(UIImagePickerControllerOriginalImage) as UIImage
//Scale Down Image
let scaledImage = self.scaleImageWith(pickedImage, and: CGSizeMake(100,100))
let imageData = UIImagePNGRepresentation(scaledImage)
let imageFile:PFFile = PFFile(data: imageData)
PFUser.currentUser().setObject(imageFile, forKey: "profileImage")
PFUser.currentUser().saveInBackgroundWithTarget(nil, selector: nil)
picker.dismissViewControllerAnimated(true, completion: nil)
//this is the line seems to have problem.
self.navigationController?.popToViewController(ComposeViewController, animated: true)
}然后我得到了这些错误:不能将ComposeViewController.Type‘转换为'UIViewController’预期的成员名称或类型名称后的构造函数调用
它建议通过将()放在ComposeViewController之后来进行修复,但是在修复之后它会给出更多的错误。
希望有人能帮忙。谢谢!:-)
发布于 2017-01-11 16:45:41
let controllers = self.navigationController?.viewControllers
for vc in controllers! {
if vc is YourVC {
_ = self.navigationController?.popToViewController(vc as! YourVC, animated: true)
}
}发布于 2016-08-06 08:52:27
我知道这很老,但就像Saqib所说的,你不能弹出一个还不存在的视图控制器。
这里的许多答案似乎来自没有读过你的问题的人,只是标题。我将把这段代码留在这里,以防它对任何人有帮助。
let vcIndex = self.navigationController?.viewControllers.indexOf({ (viewController) -> Bool in
if let _ = viewController as? ComposeViewController {
return true
}
return false
})
let composeVC = self.navigationController?.viewControllers[vcIndex!] as! ComposeViewController
self.navigationController?.popToViewController(composeVC, animated: true)发布于 2015-07-21 10:30:05
有一个方法可以让您访问当前堆栈上所有ViewControllers的数组,您可以通过使用它的索引来捕获您想要的数组,例如:
let switchViewController = self.navigationController?.viewControllers[1] as! ComposeViewController
self.navigationController?.popToViewController(switchViewController, animated: true)https://stackoverflow.com/questions/28190070
复制相似问题