かなり基本的な事ですが、色々書き直しているので、メモがてら。
SourceTypeの対応チェック
例えばシュミレータでカメラを起動しようすると落ちるので。
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)
{
//camera ok
}
カメラ・アルバムの起動
let ipc:UIImagePickerController = UIImagePickerController();
ipc.delegate = self
ipc.sourceType = UIImagePickerControllerSourceType.Camera
// UIImagePickerControllerSourceType.PhotoLibraryでアルバムへのアクセス
self.presentViewController(ipc, animated:true, completion:nil)
プロトコルの指定
//ViewController内であれば
class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {
UINavigationControllerDelegateもいります。
delegateで画像の取得
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
if info[UIImagePickerControllerOriginalImage] != nil {
let image:UIImage = info[UIImagePickerControllerOriginalImage] as UIImage
}
//allowsEditingがtrueの場合 UIImagePickerControllerEditedImage
//閉じる処理
picker.dismissViewControllerAnimated(true, completion: nil);
}