2015-10-06 26 views
0

代碼用於與斯威夫特1,但現在不工作,這裏是我的問題。 (沒有檢查其他問題,但是這是略有不同,足以使對方solututions沒有工作。performSegueWithIdentifier沒有從放風segue

所以我想提出一個登錄屏幕,我做如下 enter image description here

,它工作正常,用戶在他們的用戶名和密碼進入,然後我以編程方式檢查,他們可以登錄並都還不錯,做的展開如下:

self.performSegueWithIdentifier("unwindGoToTeamPage", sender: self) 

但即使func被稱爲下面的代碼不火。我知道這是因爲我在他們的調試中有一個打印語句,而且它是在控制檯上OWS:

@IBAction func unwindGoToTeamPage(sender: UIStoryboardSegue){ 
    print("In here") 
    self.performSegueWithIdentifier("goToTeamPage", sender: self) 
    } 

現在我知道它關係到同樣的原因,在視圖控制器生命週期的開始,你不能叫

self.performSegueWithIdentifier("goToTeamPage", sender: self) 

,因爲它不會在

工作
override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

override func viewWillAppear(animated: Bool) { 
    } 

但只有在

override func viewDidAppear(animated: Bool) { 
     if appDelegate.tkData[0] == "1" 
     { 
      self.performSegueWithIdentifier("goToTeamPage", sender: self) 
     } 
    } 

在斯威夫特1,我習慣把一個計時器,一切都很好,但不再工作,我喜歡把固體的解決方案,是不是黑客攻擊的Objective-C。我認爲解決方案包括等待登錄視圖控制器完全解散,但不確定實現它的正確方法。

是否可以向主隊列發送調度選項。如果有人有答案併發布更新,我會盡力解決。我還注意到它在iPhone或iPod上運行得很好,但它的問題尚未解決。

欣賞任何指針來解決這個問題。謝謝

更新,是的我曾嘗試過UITextField解決方案,但在這種情況下似乎不是問題。我正在慢慢發現這個問題,因爲一個視圖控制器尚未完成之前,

self.performSegueWithIdentifier("goToTeamPage", sender: self) 

火災。

我也道歉,我沒有提到的控制檯消息是: 警告:試圖提出有關< 當前視圖控制器>誰的觀點是不是在窗口層次< 新的視圖控制器>!

因此,我認爲我的問題是爲需要排序的運行登錄視圖控制器以這樣的方式爲具有orignial視圖 - 控制獲取登錄查看conntroller已完成的消息,然後才火

self.performSegueWithIdentifier("goToTeamPage", sender: self) 

SO是有辦法得到某種回調告訴原始視圖控制器,子視圖控制器已完全完成,所以我可以在子視圖控制器完成後才能調用下一個函數。

感謝您的任何幫助。

+0

你可以請檢查是否[此線程](http://stackoverflow.com/questions/32643765/ios-9-segue-causes-app-to-freeze-no-crash-or-error-thrown/32661264 #32661264)解決了你的問題。 – Abhinav

+0

感謝Abhinav,不,因爲我沒有UITextField問題。我確實看過這些問題並嘗試解決方案,但它沒有幫助。 – timv

+0

用更多的信息更新了我的問題,有助於幫助 – timv

回答

0

我有這種工作,但覺得它真的只是另一個黑客,雖然會讓我擺脫麻煩這次失望,我找不到正確的方式做到這一點。

所以這個問題主要是通過模態表示登錄屏幕,一旦它被解散,它需要從視圖層次結構中刪除很多微秒。試圖移動到另一個視圖控制器與

self.performSegueWithIdentifier("goToTeamPage", sender: self) 

將無法​​正常工作,這是我的兩難。

所以要避開它我發的登錄屏幕全屏(不酥料餅或模態),然後把代碼

self.performSegueWithIdentifier("goToTeamPage", sender: self) 

override func viewDidAppear(animated: Bool) { 
    self.performSegueWithIdentifier("goToTeamPage", sender: self)   
} 

功能。

不是最好的解決方案,因爲登錄屏幕現在是全屏,而在iPhone上確定,而不是在iPad上最好的。

因此,有點固定,但作爲一個破解和解決辦法,如果任何人有一個解決方案,我可以返回到登錄屏幕的模態視圖。

相關問題