2017-05-23 11 views
0

私はUIImagePickerControllerのインスタンスをカスタムサブビューからロードしようとしています。それは動作しません何らかの理由で、私を与え続けて:UIImagePickerControllerをサブビューからロードする

ビューコントローラ

let subview = SubView() 
// Subview params... 
subview.parent = self 
self.view.addSubview(subview) 

サブビュー

<UIImagePickerController: 0x7fde7282bc00> on <UIViewController: 0x7fde6f507f00> whose view is not in the window hierarchy! 

ここに私のコードがどのように見えるかのスケルトンです

class SubView: UIView, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 

    let imagePicker = UIImagePickerController() 

    var parent = UIViewController() 

    override func draw(_ rect: CGRect) { 
     imagePicker.delegate = self 
     let add = UIButton() 
     // add params... 
     add.addTarget(self, action: #selector(addImg(_:)), for: .touchUpInside) 
     self.addSubview(add) 
    } 

    func addImg(_ sender: UIButton) { 

     imagePicker.allowsEditing = false 
     imagePicker.sourceType = .photoLibrary 

     parent.present(imagePicker, animated: true, completion: nil) 

    } 

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 

     if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { 
      // Do stuff with image 

     } 

    } 

} 

私はこれをどのように動かすことができるかに関するアイデアは?

答えて

0

現在rootControllerUIApplicationを使用して入手できます。これは私の作業コードです。それはrootControllerを見つけて、それがUINavigationControllerまたはUIViewController

if let rootController = UIApplication.shared.keyWindow?.rootViewController { 

    if rootController is UINavigationController { 
     if let navigationController = rootController as? UINavigationController { 
      if let topViewController = navigationController.topViewController { 
       topViewController.present(alert, animated: true, completion: nil) 
      } 
     } 
    } 
    else { 
     // is a view controller 
     rootController.present(alert, animated: true, completion: nil) 
    } 
} 
+0

はそんなにありがとうのタイプであるかどうかをチェックします! –

+0

@AntersBearそれは動作しますか?正解とマークしてください;) – xmhafiz

関連する問題