performSegueWithIdentifier不会推送视图

时间:2015-09-23 13:44:16

标签: ios uiviewcontroller segue swift2 xcode7

我刚刚更新了Xxode以使用Swift 2.0。像往常一样,出现了很多新问题。

在我的应用程序中,我有一个视图控制器,用于检查用户是否已登录并显示登录屏幕或应用程序的主屏幕。这是一个非常简单的VC:

class WelcomeViewController : UIViewController {

    override func viewDidAppear(animated: Bool) {
        if PFUser.currentUser() == nil {
            self.performSegueWithIdentifier("segue-require-login", sender: self)
        }
        else {
            self.performSegueWithIdentifier("segue-start-app", sender:self);
        }
    }

}

过去曾经很完美,但现在却没有。 segue segue-require-login的类型为“模态”,它工作正常。 segue segue-start-app是“Show(例如Push)”,但即使代码正在执行(即使prepareForSegue被调用),视图也不会被推送。

我尝试重新创建segue,执行Clean,清理项目的构建文件夹,但似乎没有任何帮助。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

iOS 9和Xcode 7中似乎存在一个错误,如果你有一个带占位符文本的UITextView,它会阻止segue被触发。

以下答案中有更多解释: iOS 9 Segue Causes App To Freeze (no crash or error thrown)

要解决此问题,请尝试删除UITextView的占位符文本

答案 1 :(得分:0)

我认为我遇到了同样的问题:我有一个UITabelView,其中包含从nib文件创建的单元格,当用户点击一个单元格调用此方法时:

enter image description here

当我有以下方法prepareForSegue ::应用程序崩溃: enter image description here

如果我删除行129一切正常,方法prepareForSegue ::打开右视图,标签contactName以默认文本显示。 如果我修改方法如下,prepareForSegue :: get完全符合你的期望,没有任何类型的错误:

enter image description here

如果您也得到相同的结果,请告诉我