我正在使用 UITableViewController 作为游戏中的菜单。表视图为我的自定义 UIView 打开一个视图控制器,显示游戏。当游戏结束时, UIView 被通知(这有点毁了MVC校长),从那里我有点迷失。

问题:

  1. UIView 可以与其控制器通信吗?怎么样?
  2. 一个控制器可以与启动控制器的控制器通话吗?怎么样?
  3. 如何优雅地在所有这些复杂的视图和控制器之间进行转换?
有帮助吗?

解决方案

  1. 在此处使用委托协议。您的自定义游戏UIView可以使用 delegate 属性,并在事件发生时(游戏结束,游戏暂停,查看关闭等)调用此委托上的方法。这是一篇关于使用代表的好文章:如何在Objective-中创建委托C 1

  2. 我建议使用UINavigationController。您不一定需要显示导航栏,但如果您将视图控制器嵌套在导航控制器中,则可以访问 -pushViewControllerAnimated: -popViewControllerAnimated:在嵌套视图控制器级别之间导航非常容易。

  3. UINavigationController的另一个好处 - 当您在视图之间切换时,您将获得一个漂亮的幻灯片动画。

  4. 除了UIKit UINavigationController / UIViewController机制之外,还有其他第三方机制。查看 Three20项目,特别是TTNavigationCenter课程。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top