我正在尝试拍照,调整尺寸,然后点按“#34;使用照片"并切换到显示原始图像和编辑图像的新视图。麻烦的是在点击"使用照片"后显示新视图。使用我当前的代码,我可以解雇ImagePickerController,但它会回到主视图然后我得到一个黑屏。
@IBAction func pickerButton(button: UIButton)
{
var controller : UIImagePickerController = UIImagePickerController();
controller.delegate = self
//controller.allowsEditing = true
self.presentViewController(controller, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject])
{
var mediaDictionary : NSDictionary = info as NSDictionary
println("here it comes")
var pickerMedia : String = mediaDictionary.objectForKey("UIImagePickerControllerMediaType") as! String
dump(pickerMedia)
if (pickerMedia == "public.image"){
///////Loading dictionaries for value pairs that don't exist as of video capture video
var anImage : UIImage = mediaDictionary.objectForKey("UIImagePickerControllerOriginalImage") as! UIImage
/////////Optional for edited image
var editedImage : UIImage = mediaDictionary.objectForKey("UIImagePickerControllerEditedImage") as! UIImage
// Dismiss the image picker
picker.dismissViewControllerAnimated(true, completion: nil)
// Here is my issue...
var svc : decisionController = decisionController()
self.presentViewController(svc, animated: true, completion: nil)
}
我的decisionController视图位于一个单独的swift文件中,它位于我的故事板中。它将类设置为decisionController。我通常会在下一个视图中创建一个segue但是我没有引用按钮,因为我使用的是通用的UIImagePickerController。
这是我的decisionController.swift
import UIKit
class decisionController: UIViewController {
@IBOutlet var anImageView : UIImageView?
@IBOutlet var anotherImageView : UIImageView?
override func viewDidLoad() {
super.viewDidLoad()
//anImageView!.image = anImage
//anotherImageView!.image = editedImage
// Do any additional setup after loading the view, typically from a nib.
}
}
答案 0 :(得分:1)
如果要在不使用segue的情况下从故事板加载场景,可以通过向故事板中的场景添加Storyboard ID,然后在故事板上调用instantiateViewControllerForIdentifier:
来实现。
假设呈现视图控制器位于同一个故事板中,通过在故事板中选择视图控制器并在身份检查器中填写Storyboard ID下的值来设置Storyboard ID后,此代码应该可用(命令选项) -3)。
替换:
// Here is my issue...
var svc : decisionController = decisionController()
self.presentViewController(svc, animated: true, completion: nil)
使用:
let svc = self.storyboard!.instantiateViewControllerWithIdentifier("decisionControllerStoryboardID") as! decisionController
self.presentViewController(svc, animated: true, completion: nil)