Iphone UITableViewController.view崩溃

Iphone UITableViewController.view崩溃,iphone,uitableview,Iphone,Uitableview,因此,我试图在我的iPhone应用程序中使用UITableViewController(我们称之为homeView)来显示一个简单的表格,其中只包含从控制器中的NSArray加载的几行文本。我想在主控制器的子视图(我们称之为subSubView)的子视图中以分组样式显示表。当我尝试以下操作:[subSubView addSubview:homeView.view]时,我的应用程序在启动时崩溃。但是,当我分配对象而不将其添加到任何视图时,它会正常启动 显示我的UITableViewControll

因此,我试图在我的iPhone应用程序中使用UITableViewController(我们称之为homeView)来显示一个简单的表格,其中只包含从控制器中的NSArray加载的几行文本。我想在主控制器的子视图(我们称之为subSubView)的子视图中以分组样式显示表。当我尝试以下操作:[subSubView addSubview:homeView.view]时,我的应用程序在启动时崩溃。但是,当我分配对象而不将其添加到任何视图时,它会正常启动


显示我的UITableViewController生成的表的最佳方式(或者更确切地说是一种工作方式)是什么?

没有足够的信息来确定发生了什么,但如果我不得不猜测,我会认为您可能没有保留homeView。通常我会说,作为对你问题的评论,因为这不是一个真正的答案,但我有一个完全不同的答案:

只需使用
UITableView
,而不是
UITableView控制器
。与其尝试在控制器中嵌入控制器(这是相当困难的,因为Apple没有公开必要的工具来实际修改视图控制器层次结构),只需使您正在编写的VC支持适当的委托/数据源方法,并直接创建视图即可

虽然尝试将VCs嵌入彼此内部可能有一定的逻辑意义,但除了内置容器VCs(
UINavigationController
UITabBarController
),它实际上不起作用™。其技术原因是,在内部,一些事件路由和消息传递取决于parentViewController是否正确,但由于您无法设置它(setParentViewController:is private),UIKit中的大量潜在bug开始抬头。内部集合类可以正确设置parentViewController,因此一切正常


还有最后一件事。在您的问题中,您将视图控制器命名为
homeView
。求你了,求你了,别那么做。视图控制器和视图是分开的,称之为
homeViewController
。除了许多新的iPhone开发人员对这种区别感到困惑之外,没有什么比追踪其他人的代码并意识到你假设的东西是一种类型又是另一种类型更令人恼火的了。

非常感谢你提供的详细答案,它提供了非常丰富的信息。实际上,我确实尝试了一些我认为与您的建议类似的东西(在IB中创建一个UITableView,并将数据源/委托连接到我的UITableViewController),但在运行它时它没有显示任何数据,只是一个带条框。这是你的建议,还是别的什么?谢谢(注:homeView名称上注明。我一直努力做到这点,但看起来我滑倒了)实际上,我不是说你应该将它连接到UITableViewController(尽管在某些情况下你可以这样做)。我的意思是将数据源和委托连接到主视图控制器,并在那里实现适当的协议方法。另外,如果我在homeView问题上听起来像个傻瓜,我也很抱歉,我自己确实犯了这个错误。很好的观点和答案,这帮助了我,在我的例子中,用uiviewcontroller实现数据源/委托协议就简单多了。