performSegueWithIdentifier未呈现所需的视图

时间:2016-01-31 16:12:32

标签: ios swift

我已经从一个viewcontroller到另一个viewcontroller设置了一个“show detail”segue。但是当我执行下面的代码没有任何反应时,它不会显示viewController。我100%认为segue中的标识符是相同的。这可以做什么呢?

self.performSegueWithIdentifier("PresentPermissionView", sender: self)

我在这个方法中称呼它

func determinePermission() {

    switch CLLocationManager.authorizationStatus() {

    case .AuthorizedAlways, .AuthorizedWhenInUse:
        if CLLocationManager.locationServicesEnabled() {

        }

    case .NotDetermined:
        locationManager.requestWhenInUseAuthorization()
        print("test")
    case .Restricted, .Denied:

        print("restricted")
        self.performSegueWithIdentifier("PresentPermissionView", sender: self)

    }
}

2 个答案:

答案 0 :(得分:0)

你在哪里称这种方法?

尝试记录它是否真的准备通过覆盖来执行segue:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
    print("Preparing for segue using: \(segue)")
    print("With it's destination view controller: \(segue.destinationViewController)")
}

override func shouldPerformSegueWithIdentifier(identifier: String, sender: AnyObject?) -> Bool
{
    return true
}

答案 1 :(得分:0)

您的故事板似乎没有设置标识符,这就是它没有调用的原因。要设置标识符,请选择您的segue并将复制粘贴到self.performSegueWithIdentifier方法中的字符串。

这是故事板配置的样子: enter image description here

如果您正确配置了所有这些并且行为仍然不是您期望的行为,请检查日志以查看是否存在配置错误。

希望这有帮助!让我知道它是怎么回事:))