2

我在我的应用程序中使用 UISegue 在我的应用程序中的视图控制器之间自动转换。我称他们为A和B。

它按预期工作,但是当我想从 B 弹回 A 时,我尝试调用 [self.navigationController popViewController]但是 B 的 navigationController 属性报告为 null。


作为第二次尝试,我尝试将一个按钮映射到 UISegue,然后返回到视图控制器 A。
但这只会创建一个新的 ViewController。

作为一种解决方法,我最终做了一个解决方法是B viewcontroller从 UIStoryboard 中检索并调用[A.navigationController pushViewController:B]

此时,呼叫[B.navigationController popViewController]按预期工作。

这似乎是错误的,从情节提要中我如何才能返回到以前的视图控制器?

4

1 回答 1

2

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

  • 在一个空的故事板中,插入一个 UINavigationController。这将在情节提要中引入两个窗口,并用箭头(segue)链接。右边的应该是控制器 A。

  • 在 A 中,假设您添加了一个按钮。该按钮会将 B 推入导航堆栈。

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

如果您只使用 UIViewController (A) 并推送 B,则没有 navigationController 可以处理弹出。

希望有所帮助。

于 2012-01-18T16:13:54.857 回答