Not easily at the moment.  

However, thanks to your suggestion of trying to create the sheet every time 
I've figured out the error (on my part).

In my code I had

if (sheet == null)
{
        create it, etc.
}
sheet.Click +=….

The Clicked handler was getting += each time through that the user clicked on 
the add photo button.  Thus it was calling it twice which explains why it was 
complaining about the active controller as the Image Picker was being displayed 
twice.

The sheet.Clicked += should have been inside the if (){} block.  :)

Thanks,
Gerry

On Jul 1, 2012, at 2:06 PM, Nic Wise <[email protected]> wrote:

> Hrmmm... are you able to try it on the normal version? Might be a
> MonoTouch-not-yet-on-the-beta-of-ios type issue :)
> 
> 
> 
> On Sun, Jul 1, 2012 at 8:03 PM, Gerry High <[email protected]> wrote:
>> It fails on the second time in displaying the Image Picker.
>> 
>> I should note that this occurs on the Simulator running iOS [redacted].
>> 
>> Gerry
>> 
>> On Jul 1, 2012, at 1:19 PM, Nic Wise <[email protected]> wrote:
>> 
>>> Well, the Clicked method (and other events) are just using an internal 
>>> delegate.
>>> 
>>> Does it not work at all? or only on the second call?
>>> 
>>> try taking out the if (sheet == null) bit, and recreate it each time.
>>> 
>>> 
>>> 
>>> On Sun, Jul 1, 2012 at 6:50 PM, Gerry High <[email protected]> wrote:
>>>> I do not recreate it each time as it is stored in a class variable.  So I 
>>>> do a check of
>>>> 
>>>> if (sheet == null)
>>>> {
>>>>       create it here
>>>> }
>>>> sheet.Clicked += TakePhoto();
>>>> sheet.ShowInView(this.View);
>>>> 
>>>> In my clicked handler I then create the image picker and have tried quite 
>>>> a few variations on PresentModalViewControllerAnimated (this, 
>>>> navigationcontroller, root, etc.) as well as the recommended 
>>>> PresentViewController with a completed handler.
>>>> 
>>>> The only way I got it to work was to comment out the Clicked handler and 
>>>> instead set a delegate which implements the Dismissed method (e.g. 
>>>> sheet.Delegate = new MySheetDelegate();)
>>>> 
>>>> Thanks,
>>>> Gerry
>>>> 
>>>> On Jul 1, 2012, at 12:00 PM, Nic Wise <[email protected]> wrote:
>>>> 
>>>>> Could it be that you are not recreating the ActionSheet each time? I
>>>>> have a load of working code around this, eg
>>>>> 
>>>>> https://gist.github.com/3028960
>>>>> 
>>>>> parentview, in this case, is the dialogviewcontroller that the user
>>>>> was looking at when they hit the button.
>>>>> 
>>>>> 
>>>>> 
>>>>> On Sun, Jul 1, 2012 at 3:03 PM, Gerry High <[email protected]> wrote:
>>>>>> I sent this yesterday to the list but then never saw it posted so am 
>>>>>> resending it.
>>>>>> =====
>>>>>> I noticed an issue in using an UIActionSheet in combination with a 
>>>>>> UIImagePickerController and thought I'd shared what I've seen and a work 
>>>>>> around.  I ported some working code from Xcode to MonoTouch and got a 
>>>>>> crash with "Application tried to present modally an active controller".  
>>>>>> The use case is a UIActionSheet displaying 2-3 buttons and then from the 
>>>>>> UIActionSheet.Clicked event displaying a UIImagePickerController.
>>>>>> 
>>>>>> On the first call from the ActionSheet to the ImagePicker it works fine 
>>>>>> all the way through the cancel from the image picker.  However, the 
>>>>>> second time I make the call it fails when trying to display the 
>>>>>> UIImagePickerController with the above mentioned error.
>>>>>> 
>>>>>> One thing I did in comparing my Xcode vs MT code is that I was using the 
>>>>>> Clicked event on the action sheet vs the action sheet delegate method 
>>>>>> didDismissWithButtonIndex.  I decided to write a simple delegate class 
>>>>>> and override the Dismissed method.  Now my code works with no errors.
>>>>>> 
>>>>>> Is there a difference in how the delegate Dismissed method works vs the 
>>>>>> Clicked event?  You would think they'd behave the same but it appears 
>>>>>> that they do not.
>>>>>> 
>>>>>> Thanks.
>>>>>> Gerry
>>>>>> _______________________________________________
>>>>>> MonoTouch mailing list
>>>>>> [email protected]
>>>>>> http://lists.ximian.com/mailman/listinfo/monotouch
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Nic Wise
>>>>> t.  +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
>>>>> b. http://www.fastchicken.co.nz/
>>>>> 
>>>>> Earnest: Self-employed? Track your business expenses and income.
>>>>> http://earnestapp.com
>>>>> Nearest Bus: find when the next bus is coming to your stop. 
>>>>> http://goo.gl/Vcz1p
>>>>> mobileAgent (for FreeAgent): get your accounts in your pocket.
>>>>> http://goo.gl/IuBU
>>>>> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
>>>>> London Bike App: Find the nearest Boris Bike, and get riding! 
>>>>> http://goo.gl/Icp2
>>>> 
>>>> 
>>> 
>>> 
>>> 
>>> --
>>> Nic Wise
>>> t.  +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
>>> b. http://www.fastchicken.co.nz/
>>> 
>>> Earnest: Self-employed? Track your business expenses and income.
>>> http://earnestapp.com
>>> Nearest Bus: find when the next bus is coming to your stop. 
>>> http://goo.gl/Vcz1p
>>> mobileAgent (for FreeAgent): get your accounts in your pocket.
>>> http://goo.gl/IuBU
>>> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
>>> London Bike App: Find the nearest Boris Bike, and get riding! 
>>> http://goo.gl/Icp2
>> 
>> 
> 
> 
> 
> -- 
> Nic Wise
> t.  +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
> b. http://www.fastchicken.co.nz/
> 
> Earnest: Self-employed? Track your business expenses and income.
> http://earnestapp.com
> Nearest Bus: find when the next bus is coming to your stop. 
> http://goo.gl/Vcz1p
> mobileAgent (for FreeAgent): get your accounts in your pocket.
> http://goo.gl/IuBU
> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
> London Bike App: Find the nearest Boris Bike, and get riding! 
> http://goo.gl/Icp2


_______________________________________________
MonoTouch mailing list
[email protected]
http://lists.ximian.com/mailman/listinfo/monotouch

Reply via email to