【问题标题】:performSegueWithIdentifier won't push viewperformSegueWithIdentifier 不会推送视图
【发布时间】:2015-09-23 13:44:16
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

  • 在哪些方面不能完美运行?有没有错误?
  • 什么都没有发生,屏幕没有被推送,也没有出现错误,即使代码被执行了。
  • 如果 segue 标识符仍然是“segue-start-app”,请检查您的故事板。如果那不是问题,那么请发布您的 segue 准备
  • segue 标识符是正确的,我已经检查过了。如果不是,XCode 会抛出运行时错误。关于prepareForSegue,我创建它只是为了检查它是否被调用,然后将其删除。我的 VC 的代码正是你在上面看到的
  • @MarcosDuarte,我最近遇到了类似的问题,并使用以下答案中的方法来解决它:stackoverflow.com/questions/32643765/…

标签: ios uiviewcontroller segue swift2 xcode7


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    当我有以下方法 prepareForSegue:: 应用程序崩溃:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 2011-05-23
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      相关资源
      最近更新 更多