我UITableViewController
在游戏中使用 a 作为菜单。UIView
表格视图为我的自定义显示游戏打开了一个视图控制器。游戏结束时UIView
会收到通知(这有点破坏 MVC 主体),从那里我有点迷路了。
问题:
- 可以
UIView
与它的控制器通信吗?如何? - 一个控制器可以与启动它的控制器对话吗?如何?
- 如何优雅地在所有这些复杂的视图和控制器网络之间转换?
我UITableViewController
在游戏中使用 a 作为菜单。UIView
表格视图为我的自定义显示游戏打开了一个视图控制器。游戏结束时UIView
会收到通知(这有点破坏 MVC 主体),从那里我有点迷路了。
问题:
UIView
与它的控制器通信吗?如何?在此处使用委托协议。delegate
当事件发生(游戏结束、游戏暂停、视图关闭等)时,您的自定义游戏 UIView 可以使用此委托的属性和调用方法。这是一篇关于使用委托的精彩文章:如何在 Objective-C 中创建委托?
我建议使用 UINavigationController。您不一定需要显示导航栏,但是如果您将视图控制器嵌套在您可以访问的导航控制器中-pushViewControllerAnimated:
,-popViewControllerAnimated:
这使得在嵌套视图控制器的级别之间导航变得非常容易。
UINavigationController 的另一个好处 - 当您在视图之间切换时,您将获得漂亮的幻灯片动画。
与 UIKit UINavigationController/UIViewController 机制相比,您可能更喜欢其他 3rd 方机制。查看Three20 项目,特别是 TTNavigationCenter 类。