【问题标题】:performseguewithidentifier with iBeacons使用 iBeacons 执行 eguewithidentifier
【发布时间】: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 在我靠近该信标时自动呈现相关的视图控制器(具有给定的次要值)

标签: ios xcode ibeacon


【解决方案1】:

我没有使用 Estimote 的自定义库,但我认为它与位置管理器的相似。

在核心位置管理器中,如果您的应用在后台,当您第一次进入新的信标区域时,您会收到输入区域通知,然后您只会获得几秒钟的测距信息。

如果您为您的区域设置了唯一的 UUID 和主要 ID 但没有次要 ID,则具有该 UUID 和主要 ID 的所有信标都被视为同一区域的一部分,您将无法可靠地收到测距通知,因为具有不同次要 ID 的信标成为最近的信标。

如果您想同时处理范围内的多个信标并区分它们,您需要为每个信标的 UUID、主要 ID 次要 ID 创建单独的信标区域。

我不知道这是否是您面临的问题,但可能是。

【讨论】:

  • 不,那不是问题。当我靠近带有相关次要值的信标时,我只想让 segues 显示相关的视图控制器。但是,它只显示范围内的第一个,当我靠近另一个信标时,它不会更改为另一个。它以某种方式停止了对其他信标的测距。也许还有另一种编写上面代码的方法。也许我错过了smthng ...?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-01
  • 1970-01-01
相关资源
最近更新 更多