2016-02-14 71 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

相关问题