2016-06-07 30 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

相關問題