Xcode Swift iBeacon来自AppDelegate

时间:2016-03-14 09:14:49

标签: ios ibeacon

我正在AppDelegate中执行startRangingBeaconsInRegion 一旦检测到信标......主视图控制器 - >去 - > ABC ViewController和我想要停止测距,直到用户点击“后退”按钮。 如何从新的ViewController ABC停止范围?当按下“后退”按钮时,再次开始测距? 谢谢!

1 个答案:

答案 0 :(得分:0)

如果您只想在ABCViewController处于活动状态时停止对信标进行测距,则可以在AppDelegate中添加两种方法,如下所示:

func stopRanging() {
  locationManager.stopRangingBeaconsInRegion(region)
}

func startRanging() {
  locationManager.startRangingBeaconsInRegion(region)
}

然后在你的ABCViewController中你可以添加这样的方法,这将导致在显示视图控制器时停止范围,并且只要它不可见就重新启动:

override func viewWillAppear(animated: Bool) {
  super.viewWillAppear(animated)
  let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
  appDelegate.stopRanging()
}

override func viewWillDisappear(animated: Bool) {
  super.viewWillDisappear(animated)
  let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
  appDelegate.startRanging()
}