performSegueWithIdentifier 不会推送视图

performSegueWithIdentifier won't push view

我刚刚更新了 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 是 "Present modally" 类型,它工作正常。 segue segue-start-app 是 "Show (e.g. Push)",但视图永远不会被推送,即使正在执行代码(甚至调用 prepareForSegue)。

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

有什么想法吗?

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

更多解释在下面的回答中:

要修复它,请尝试删除 UITextView 的占位符文本

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

当我使用以下方法 prepareForSegue:: 时,应用程序崩溃:

如果我删除第 129 行,一切正常,方法 prepareForSegue:: 打开右视图,标签 contactName 将显示其默认文本。 如果我按如下方式修改方法 prepareForSegue:: 得到你期望的结果,没有任何类型的错误:

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