ios - performSegueWithIdentifier 不会推送 View

标签 ios uiviewcontroller segue swift2 xcode7

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

在我的应用程序中,我有一个 View Controller ,用于检查用户是否已登录并显示登录屏幕或应用程序的主屏幕。这是一个非常简单的 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)”,但 View 永远不会被推送,即使代码正在执行(甚至 prepareForSegue 被调用) .

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

有什么想法吗?

最佳答案

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

更多解释在下面的回答中: iOS 9 Segue Causes App To Freeze (no crash or error thrown)

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

关于ios - performSegueWithIdentifier 不会推送 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32741360/

相关文章:

iphone - 服务器无法识别 iPhone 中 HTTP header SOAPAction 的值?

ios - 如何在共享时使 URL 字符串可链接

ios - 推送 segues 只能由 UINavigationController 错误使用

ios - 从 uiscrollview 中的 uibutton 父 uiviewcontroller 中的触发方法

ios - 从容器 View 中呈现 View Controller

objective-c - 将数据从 Viewcontroller 传递到 Label

ios - 用箭头替换 GMSMapView 中的蓝点 - Swift

ios - 如何从 iPhone 模拟器访问主机本身

ios - Segues 之后弹出或删除模态框

swift - 如何访问 prepareForSegue 中选定单元格的数据