我在我的应用程序中使用UISegue在我的应用程序中的viewcontrollers之间自动转换。我叫他们A和B.
它按预期工作,但是当我想从B回弹到A时,我试图打电话
[self.navigationController popViewController]
但是B的navigationController属性报告为null。
作为第二次尝试,我尝试将按钮映射到UISegue,然后再查看控制器A. 然而,这只是创建一个新的ViewController。
作为一种解决方法,我最终做的工作是从UIStoryboard检索B viewcontroller
并致电[A.navigationController pushViewController:B]
此时,调用[B.navigationController popViewController]
按预期工作。
这似乎是错误的,从故事板segue我怎么能回到以前的视图控制器?
答案 0 :(得分:2)
我不知道你的A和B控制器的类(无论是UIViewController,UITableViewController还是UINavigationController),但是如果你遵循以下模式,它应该可以工作。
在空的故事板中,插入UINavigationController。这将为故事板带来两个窗口,与箭头(segue)链接。右边的一个应该是控制器A.
在A中,假设您添加了一个按钮。该按钮将B推入导航堆栈。
然后,添加第二个控制器B,并从控制器A中的按钮拖动到控制器B,然后从弹出的菜单中选择“推送”。
如果您只使用UIViewController(A)并按B,则没有navigationController来处理弹出。
希望有所帮助。