UIStoryboard popViewController

问题描述:

我在我的应用程序中使用UISegue来自动在视图控制器之间转换。我会打电话给他们A和B.UIStoryboard popViewController

它按预期工作,但是当我想从B弹回到A时,我试图拨打 [self.navigationController popViewController]但是B的navigationController属性报告为空。


作为第二次尝试,我试图映射一个按钮,一个UISegue回视图控制器A.
然而,这只是创建一个新的视图控制器。

作为工作的时候,我终于实现了为周围的工作是检索从UIStoryboard的,并呼吁[A.navigationController pushViewController:B]

在这一点,称[B.navigationController popViewController]发挥预期。

这似乎是错误的,从故事板赛格瑞我怎么能返回到前一个视图控制器?

+1

是“推”式的延续? – barley 2012-01-16 22:34:45

+0

这是一种推式呀 – Onedayitwillmake 2012-01-17 05:35:09

我不知道你的A和B控制器的类(无论是UIViewController,UITableViewController还是UINavigationController),但是如果你遵循下面的模式,它应该可以工作。

  • 在空的故事板中插入一个UINavigationController。这会为故事板带来两个窗口,并与一个箭头(一个segue)相关联。右边的一个应该是控制器A

  • 在A,比方说,你添加一个按钮。该按钮会将B推入导航堆栈。

  • 然后,从控制器A到控制器B按钮添加第二个控制器B,并拖动,然后从弹出的菜单中选择“推”。

如果您只使用UIViewController(A)并按下B,则没有navigationController负责弹出窗口。

希望有所帮助。

+1

如果您已经拥有UIViewController,则无需在UINavigationController中拖动并将其设置为up。相反,选择UIViewController并转到编辑器菜单并选择嵌入并选择UINavigationViewController,这将为您设置一切。 – 2012-02-07 00:34:29

+0

@ Scott Sherwood。这是一个很好的窍门。我不知道。但有一个问题。当我在故事板中这样做时,Xcode自动将我的viewController变成一个navController和一个viewController,并与一个segue链接。那么它不是基本上是一回事吗? – Canopus 2012-02-07 01:12:55

+0

是的,它只是一点点捷径而已。 navController和viewController之间的链接被称为关系,并且与Segue稍有不同,但原则上你留下的内容与你的建议相同。 – 2012-02-07 09:29:54