Easy fix! Your identifier: @"EstimoteSampleRegion"]
must use a different string for all three regions.
This is true whether using the Estimote SDK or standard iOS CoreLocation
APIs, around which the Estimote SDK is just a thin wrapper. CoreLocation
keeps track of multiple regions by using that string identifier as a key. If you use the same string more than once, you are effectively telling CoreLocation
to replace one region with another region.
Shameless plug: if you use my company's ProximityKit framework, you do not have to manage your beacon regions at all in code -- you can do so dynamically in the cloud. You then no longer have to worry about keeping this identifier unique. It is compatible with Estimote beacons as well as all standard iBeacons, too.