当我从UITableViewController打开自定义UIView时,如何关闭自定义视图并返回到表视图?

时间:2009-06-22 22:23:51

标签: objective-c iphone uiview uiviewcontroller uitableview

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

问题:

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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