【发布时间】:2016-07-21 16:06:41
【问题描述】:
我正在尝试使用 Estimote Beacons 构建一个演示应用程序。我希望应用程序在用户靠近信标时打开特定的视图控制器。我使用 performeguewithidentifier 但当应用程序启动时仅打开代表范围内的第一个信标的第一个视图控制器,当我靠近其他信标时它不会打开其他的。它以某种方式停止了对其他信标的测距。 下面是我用来定位信标的代码:
func beaconManager(manager: AnyObject, didRangeBeacons beacons: [CLBeacon],
inRegion region: CLBeaconRegion) {
let knownBeacons = beacons.filter{ $0.proximity != CLProximity.Unknown}
if (knownBeacons.count > 0) {
let closestBeacon = knownBeacons [0] as CLBeacon
if(closestBeacon.minor.integerValue==50557){
performSegueWithIdentifier("VC1", sender: nil)
}
else if(closestBeacon.minor.integerValue==37890){
performSegueWithIdentifier("VC2", sender: nil)
}
else if(closestBeacon.minor.integerValue==18976){
performSegueWithIdentifier("VC3", sender: nil)
}
else {
self.view.backgroundColor = UIColor.brownColor()
}
【问题讨论】:
-
代码显示在appDelegate中吗?命名的 segue 是否仅与单个 viewController 相关联?你确定他们被发现了吗? if 会设置断点或添加 NSLog 语句以查看 if 语句的哪个分支正在执行。
-
@davidgyoung 不,代码在主视图控制器中,每个 segue 都与特定的视图控制器(不是一个)相关联,是的,它们正在被发现。取决于我在哪个信标附近启动应用程序,它只显示一个,当我靠近另一个信标时,它不会“触发”另一个 segue。但是,当我关闭应用程序并靠近另一个信标时,它会打开它。但我希望 segues 在我靠近该信标时自动呈现相关的视图控制器(具有给定的次要值)