【问题标题】:View Controller in cocoa touch可可触摸中的视图控制器
【发布时间】:2010-07-07 18:16:03
【问题描述】:

一个视图可以由 2 个视图控制器管理吗?一个例子是根视图控制器里面有一个表视图控制器,这两个控制器的视图都是表视图。 使用此配置,应用程序会在您滚动表格视图的运行时加载但崩溃。这里有什么问题?

【问题讨论】:

  • 通常情况下,作为 UIViewController 的“根视图控制器”会被子类化为控制视图的 UITableViewController(UITableView)...这是您的配置吗?
  • 不,根视图控制器是 UIViewController 的直接子类
  • 你说根视图控制器“里面”有一个 UITableView 控制器——你必须将根视图控制器子类化为 UITableViewController,否则你必须创建一个单独的类文件作为 UITableViewController 并指定那是 UITableView 的代表,而不是视图。

标签: iphone cocoa-touch uiviewcontroller uitableview


【解决方案1】:

每个 UIViewController 管理一个视图及其子视图。不建议尝试使用 2 个视图控制器管理单个视图。

问题是您在这里不需要 2 个视图控制器。您的根视图控制器应该是 UIViewController 的自定义子类。添加一个 UITableView 作为根视图控制器的视图的子视图,并将 UITableView 的委托和数据源设置为根视图控制器。确保您的根视图控制器类实现了 UITableViewDatasource 协议所需的方法,您可以在界面生成器中执行此操作,也可以在根视图控制器的 viewDidLoad 方法中以编程方式执行此操作。

也可以直接使用 UITableViewController 作为根视图控制器

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-08
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多