You could put whatever code you want to be called in another method,
then call it from the block. If it's already authorized, just call it.

private bool GetAddressBook ()
{
        if (UIDevice.CurrentDevice.CheckSystemVersion (6, 0)) {
                NSError err;
                iPhoneAddressBook = ABAddressBook.Create (out err);
                var authStatus = ABAddressBook.GetAuthorizationStatus();
                if (authStatus != ABAuthorizationStatus.Authorized) {

                         iPhoneAddressBook.RequestAccess(delegate(bool granted,
NSError error) {
                if (granted) {//CALL YOUR METHOD HERE}
           });
                } else {
                //CALL YOUR METHOD HERE
                }
                return err == null;
        } else {
                iPhoneAddressBook = new ABAddressBook ();
                //CALL YOUR METHOD HERE
                return true;
        }
}

However, if you are using an async function, but working in a sync
manner, than you may need to refactor either the above bit, or your
calling code.

On Sun, Sep 30, 2012 at 11:59 PM, Stanley <[email protected]> wrote:
> Thanks Nic. I was hoping to get an example of blocking until the delegate
> was called, and how that would fit into the code I posted. I'll have a crack
> at it somehow. At least you've given me the the correct syntax for the
> RequestAccess call.
>
> Ta muchly.
>
> On 29 September 2012 18:37, Nic Wise [via MonoTouch] <[hidden email]> wrote:
>>
>> You can use it like this:
>>
>>
>>             iPhoneAddressBook.RequestAccess(delegate(bool granted,
>> NSError error) {
>>                 //do something in here
>>                 //this is called back with granted = true if the user
>> allowed it.
>>            });
>>
>> This is an async call, so your app will continue to run until the user
>> says yes or no. Then the delegate gets called.
>>
>> You dont need to show the dialog yourself - iOS does that for you. You
>> just need to handle when they say yes/no.
>>
>> On Sat, Sep 29, 2012 at 3:40 AM, Stanley <[hidden email]> wrote:
>>
>> > Hi there,
>> >
>> > I'm new to both C# and iOS and I'm looking for an example of how to
>> > implement ABAddressBook.RequestAccess. Here is my code so far:
>> >
>> > private bool GetAddressBook ()
>> > {
>> >         if (UIDevice.CurrentDevice.CheckSystemVersion (6, 0)) {
>> >                 NSError err;
>> >                 iPhoneAddressBook = ABAddressBook.Create (out err);
>> >                 var authStatus = ABAddressBook.GetAuthorizationStatus();
>> >                 if (authStatus != ABAuthorizationStatus.Authorized) {
>> >                         // iPhoneAddressBook.RequestAccess <-- is this
>> > where to do it?? how??
>> >                         using (var alert = new UIAlertView("Contacts
>> > Permission", "We need your
>> > permission to access your phone contacts. Please go to Settings >
>> > Privacy >
>> > Contacts", null, "OK", null)) {
>> >                                 alert.Show ();
>> >                                 return false;
>> >                         }
>> >                 }
>> >                 return err == null;
>> >         } else {
>> >                 iPhoneAddressBook = new ABAddressBook ();
>> >                 return true;
>> >         }
>> > }
>> >
>> > Thanks for your help guys.
>> >
>> >
>> >
>> >
>> > --
>> > View this message in context:
>> > http://monotouch.2284126.n4.nabble.com/iOS-6-ABAddressBook-RequestAccess-example-tp4657314.html
>> > Sent from the MonoTouch mailing list archive at Nabble.com.
>> > _______________________________________________
>> > MonoTouch mailing list
>> > [hidden email]
>> > http://lists.ximian.com/mailman/listinfo/monotouch
>>
>>
>>
>> --
>> Nic Wise
>> t.  <a href="tel:%2B44%207788%20592%20806" value="+447788592806"
>> target="_blank">+44 7788 592 806 | @fastchicken |
>> http://www.linkedin.com/in/nicwise
>>
>> b. http://www.fastchicken.co.nz/
>>
>> 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
>> 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
>> London Bike App: Find the nearest Boris Bike, and get riding!
>> http://goo.gl/Icp2
>> _______________________________________________
>> MonoTouch mailing list
>> [hidden email]
>> http://lists.ximian.com/mailman/listinfo/monotouch
>>
>>
>> ________________________________
>> If you reply to this email, your message will be added to the discussion
>> below:
>>
>> http://monotouch.2284126.n4.nabble.com/iOS-6-ABAddressBook-RequestAccess-example-tp4657314p4657316.html
>> To unsubscribe from iOS 6 ABAddressBook.RequestAccess example, click here.
>> NAML
>
>
>
> ________________________________
> View this message in context: Re: iOS 6 ABAddressBook.RequestAccess example
>
> Sent from the MonoTouch mailing list archive at Nabble.com.
>
> _______________________________________________
> 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/

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
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
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