anchor.diff:          )
   
       member this.ChooseCountry () = 
  -        this.NavigationController.PushViewController (new CountryPickerViewController([| "Canada"; "United States"; "United Kingdom" |]), true)
  +        let picker = new CountryPickerViewController(fun item ->
  +            country <- Some item
  +            this.Country.Text <- item.Name
  +            this.NavigationController.PopViewControllerAnimated true |> ignore
  +        )
  +
  +        this.NavigationController.PushViewController (picker, true)
   
   
       member this.ChooseRegion () = 
  -        this.NavigationController.PushViewController (new RegionPickerViewController([| "Canada"; "United States"; "United Kingdom" |]), true)
  +        match country with
  +        | Some country ->
  +            let picker = new RegionPickerViewController(country, fun item ->
  +                region <- Some item
  +                this.Region.Text <- item.Name
  +                this.NavigationController.PopViewControllerAnimated true |> ignore
  +            )
  +            this.NavigationController.PushViewController (picker, true)
  +        | None -> showSimpleAlert "Country" "Please pick a country" "Close"
   
       override this.RowSelected (view, indexPath) =
           match indexPath.Section, indexPath.Row with
  
positive.code:         )
  
  [<Register("CountryPickerViewController")>]
  type CountryPickerViewController (countries:string []) as controller =
      inherit UIViewController ("CountryPickerViewController", null)
  
      let source = { 
          new UITableViewSource() with
          override this.GetCell(tableView, indexPath) =
  
negative.code: 
      override this.ViewDidLoad () =
          this.Table.Source <- source
  
          Async.startWithContinuation
              (Places.countries ())
              (function
                  | Api.ApiOk cs -> 
                      countries <- cs
                      this.Table.ReloadData()
                  | error -> this.HandleApiFailure error
              )
  
  [<Register("RegionPickerViewController")>]
  type RegionPickerViewController (country:LocationCountry, itemSelected) as controller =
      inherit UIViewController ("RegionPickerViewController", null)
  
      let mutable regions:LocationRegion [] = [||]
      let source = { 
          new UITableViewSource() with
          override this.GetCell(tableView, indexPath) =
              let region = regions.[indexPath.Row]
              let cell = 
                  match tableView.DequeueReusableCell "region-cell" with
                  | null -> new UITableViewCell (UITableViewCellStyle.Default, "region-cell")
                  | c -> c
  
              cell.Tag <- indexPath.Row
              cell.TextLabel.Text <- region.Name
              cell
  
          override this.RowsInSection(tableView, section) = regions.Length
  
          override this.RowSelected(tableView, indexPath) =
              tableView.DeselectRow (indexPath, false)
              itemSelected regions.[indexPath.Row]
      }
  
      [<Outlet>]
  