首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift popToViewController

Swift popToViewController
EN

Stack Overflow用户
提问于 2015-01-28 18:37:38
回答 10查看 17.5K关注 0票数 14

大家好,我正在学习Swift,这里需要一些帮助。

用户正在注册并选择他们的图像。关闭图像选择器后,我希望显示ComposeViewController。

代码如下:

代码语言:javascript
复制
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之后来进行修复,但是在修复之后它会给出更多的错误。

希望有人能帮忙。谢谢!:-)

EN

回答 10

Stack Overflow用户

发布于 2017-01-11 16:45:41

代码语言:javascript
复制
let controllers = self.navigationController?.viewControllers
              for vc in controllers! {
                if vc is YourVC {
                  _ = self.navigationController?.popToViewController(vc as! YourVC, animated: true)
                }
             }
票数 12
EN

Stack Overflow用户

发布于 2016-08-06 08:52:27

我知道这很老,但就像Saqib所说的,你不能弹出一个还不存在的视图控制器。

这里的许多答案似乎来自没有读过你的问题的人,只是标题。我将把这段代码留在这里,以防它对任何人有帮助。

代码语言:javascript
复制
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)
票数 7
EN

Stack Overflow用户

发布于 2015-07-21 10:30:05

有一个方法可以让您访问当前堆栈上所有ViewControllers的数组,您可以通过使用它的索引来捕获您想要的数组,例如:

代码语言:javascript
复制
let switchViewController = self.navigationController?.viewControllers[1] as! ComposeViewController

self.navigationController?.popToViewController(switchViewController, animated: true)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28190070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档