2016-02-14 70 views
-1

當我的TabBarViewController得到一個通知時,我希望它執行一個push到UserViewController。根ViewController如何在堆棧上推送多個ViewController?

每當它收到通知,我都希望它將另一個推入堆棧。

TabBarVC -> UserVC -> UserVC -> UserVC 

UserVC將不會調用任何segues。

現在,當我收到通知時,我會執行推送過程。

func newUserIncoming(notification:NSNotification){ 
    self.performSegueWithIdentifier(SEGUES.TabBarToUserVC, sender: self) 
} 
+0

什麼阻止你這麼做? – Wain

+0

@每次我的TabBarVC調用執行Segue時,它都會定義第一個UserVC – TIMEX

+0

如果您的層次結構中包含導航控制器,則可以編寫一種方法,在該方法中可以創建UserVC的新實例並將其推送到導航控制器中。 –

回答

1

在你newUserIncoming功能,而不是執行該SEGUE,你需要創建UserVC的新實例,並推動該壓入堆棧是這樣的:

func newUserIncoming(notification:NSNotification){ 
    let userVC = UserVC() 
    // perform any setup code for userVC you may need to do 
    self.navigationController.pushViewController(userVC, animated: true) 
} 

這種方式,你會將所有其他UserVCs保留在堆棧上,低於最新的一個被推入。

+0

謝謝。最終UserVC可以執行unwindToRoot繼續返回到根目錄嗎? – TIMEX

相關問題