2014-04-14 83 views
0

我正在使用iBeacons演示應用程序。在這個時候,當我想在第二個視圖控制器中顯示信標數據的詳細視圖時,我已經有了在第一個視圖控制器中工作的信標的範圍。我聽到關於信標變化的可聽反饋,這意味着檢測最近信標的循環仍然在視圖控制器1中運行...但是如何從我的第二個視圖控制器中的視圖控制器1獲取更新?ibeacon不等oin背景輸出到第二視圖控制器

我試着在segue中傳遞它們,但後來它是靜態的NSString數據,任何人都可以幫助我如何獲得第二個視圖控制器中的「活」數據?

回答

0

如果您想在多個ViewController中處理遠程iBeacon數據,您可以在AppDelegate中設置範圍,然後從那裏調用每個ViewController上的公共方法。主要的didRangeBeacons:inRegion:在你的AppDelegate中,如果ViewController被激活,可以調用每個ViewController的自定義方法。

- (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region { 
    if (self.firstViewController != Nil) { 
     [self.firstViewController handleBeacons: beacons]; 
    } 
    if (self.secondViewController != Nil) { 
     [self.secondViewController handleBeacons: beacons]; 
    } 
} 

爲了做到這一點如上,你必須保持你的AppDelegate中爲每個視圖控制器屬性:

@interface MyAppDelegate : UIResponder <UIApplicationDelegate> 

@property (strong, nonatomic) FirstViewController *firstViewController; 
@property (strong, nonatomic) SecondViewController *secondViewController; 

@end 

您可以從每個視圖控制器填充它們是這樣的:

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    MyAppDelegate *appDelegate = (MyAppDelegate) [[UIApplication sharedApplication] delegate]; 
    appDelegate.firstViewController = self; 
} 
相關問題