2013-10-10 27 views
4

我有相機視圖控制器這個簡單的代碼:ios7 CameraPickerController圖像凍結

UIImagePickerController picker = new UIImagePickerController(); 
picker.PrefersStatusBarHidden(); 
picker.SourceType = UIImagePickerControllerSourceType.Camera; 
UIImagePickerControllerCameraDevice dev = picker.CameraDevice; 
PresentViewController (picker, false, null); 
picker.FinishedPickingMedia += (object sender, UIImagePickerMediaPickedEventArgs e) => BeginInvokeOnMainThread (delegate {DismissViewController (false, null);}); 

當應用程序啓動時,我可以捕捉照片正常,但是當我再次呈現選擇器,相機視圖顯示,但幀(圖像)顯示和凍結。如果我在設備周圍移動圖像不會改變。換句話說,我可以使用一次相機,但我不能使用它兩次。我做錯了什麼?在iOS6設備它完美的作品。

回答

4

製作一個pickerDelegate類爲我做了訣竅。你只需要在構造函數中傳遞當前的VC,以便在VC中處理圖像。

PickerDelegate

private class pickerDelegate : UIImagePickerControllerDelegate 
     { 
      private yourVC _vc; 

      public pickerDelegate (yourVC controller) : base() 
      { 
       _vc = controller; 
      } 

      public override void FinishedPickingImage (UIImagePickerController picker, UIImage image, NSDictionary editingInfo) 
      { 
       //Do something whit the image 
       _vc.someButton.SetBackgroundImage (image, UIControlState.Normal); 

       //Dismiss the pickerVC 
       picker.DismissViewController (true, null); 
      } 
     } 

viewDidLoad中

imagePicker = new UIImagePickerController(); 

//Set the Delegate and pass the current VC 
imagePicker.Delegate = new pickerDelegate (this); 
+1

感謝。從Events切換到Delegate模型。爲我修復了它。這裏的鏈接,把我帶到這裏,並有一些額外的信息:http://stackoverflow.com/a/20503817/383658 – schmidiii

+0

嗨,我有同樣的問題。我使用MvvmCross picturechooser插件。並查看他們使用委託的源代碼,但事件問題仍然存在我的應用程序?你能指導我嗎? – SoftSan

+0

同樣在這裏。看起來像要解僱。只能在iOS 9.1上使用相機一次 –