2016-06-07 29 views
0

我试图用一个SEGUE,这里是我的代码:performSegueWithIdentifier不执行

(我剪的长度代码)
所以这里的问题:根本就没有执行SEGUE。我已经在它上面放置了一个断点,以查看发生了什么,并且执行流程只是传递它,并且什么都不做,相当令人沮丧

我读过performSegueWithIdentifier需要在主线程中调用,所以我在我的segue调用之前调用NSThread.isMainThread(),它返回我true

我也仔细检查,如果标识符的名称是相同的,我打电话,那是这种情况。

我试图做

dispatch_async(dispatch_get_main_queue()){ 
    self.performSegueWithIdentifier("registerToFeed", sender: self) 
} 

,因为我已经看到了another SO thread,但仍然没有工作,没有得到执行。

所以我不知道为什么这条简单的线路没有得到执行。感谢您的帮助。

编辑:所以这里的全RegisterViewController.swift文件:
http://pastebin.com/dpBBXhe8

的问题是,在管线190的程序崩溃,因为不执行performSegue。

+0

只是一个提示:你不需要快速分号!看看这个:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#//apple_ref/doc/uid/TP40014097-CH5-ID316 – penatheboss

+1

我知道!这只是因为我不想失去这个问题,因为我使用需要分号的其他语言进行编程:) – mgul

回答

0

此代码中的viewController(self)来自哪里。 performSegueWithIdentifier(_:sender:)需要调用viewController从故事板加载(故事板不能为零)。

此外,您是否尝试过执行preapreForSegue以查看是否在您致电performSegue时调用此函数? 'prepareForSegue'的默认实现什么都不做。

+0

调用viewController是从故事板加载的。要创建segue,我只需将第一个视图(称为RegisterViewController)拖动到目标(FeedViewController),然后设置标识符。 我试图覆盖prepareForSegue函数,但仍然无法正常工作,感谢你的回答,尽管 – mgul

+0

作为一个测试,试着将一个按钮拖到故事板,并从按钮创建segue到新的viewController,看看它是否可行?我也看过故事板文件弄乱了。可能要检查storyboard的XAML,看看segue或viewController(旧标识符,不完整标记等)是否有什么奇怪的东西,然后尝试将发送者设置为nil,然后更改seque标识符的名称电话,并确保它爆炸(像它应该)。 – DJohnson

+0

而不是添加另一个按钮,我刚刚测试了我的登录视图控制器。它做同样的事情:测试字段和'performSegueWithIdentifier',所以我尝试了它,它工作,我可以到达FeedViewController。 – mgul

2

这是viewDidLoad方法中的代码吗?如果是这样,您必须将其移动到viewDidAppear

+0

不,它在@IBAction(由我的注册按钮激怒) – mgul

相关问题