Ios 在UIviewController中添加UITableView
我有一个Ios 在UIviewController中添加UITableView,ios,uitableview,uiviewcontroller,Ios,Uitableview,Uiviewcontroller,我有一个UIViewController(ViewControllerA),在此UIViewController中,我想添加一个占据部分屏幕的UITableView子视图(名为TableLoadGroupMembersViewController)。我已经为UITableView创建了名为TableLoadGroupMembersViewController的类 在ViewControllerA.h中,我以以下方式导入了TableLoadGroupMembersViewController: #
UIViewController
(ViewControllerA),在此UIViewController
中,我想添加一个占据部分屏幕的UITableView
子视图(名为TableLoadGroupMembersViewController
)。我已经为UITableView
创建了名为TableLoadGroupMembersViewController
的类
在ViewControllerA.h
中,我以以下方式导入了TableLoadGroupMembersViewController
:
#import "TableLoadGroupMembersViewController.h"
在ViewcontrollerA.m
中,我想在按下按钮时通过代码创建UITableView
。我希望UITableView
从TableLoadGroupMembersViewController
加载内容。如何设置UITableView
以读取TableLoadGroupMembersViewController
的信息
我试着这样做:
UITableView* tableVIEW = [[UITableView alloc]init];
TableLoadGroupMembersViewController* tableDelegate = [[TableLoadGroupMembersViewController alloc] init];
[tableVIEW setDelegate:tableDelegate];
[tableVIEW setDataSource:tableDelegate];
[self.view addSubview:tableVIEW];
但这让应用程序崩溃。我该怎么做
编辑:
这是给定的错误:
0x387209b: movl 8(%edx), %edi .... Thread 1 EXE Bad access
UITableView不保留其数据源或委托,这些数据源或委托仅被分配 因此,如果使用ARC,则当您退出创建tableView的方法时,您的
TableLoadGroupMembersViewController
实例将被释放。实例解除分配后,数据源和委托指向无效的内存地址(因为它们的@property是assign
,而不是weak
)
您可以将TableLoadGroupMembersViewController*tableDelegate
设置为强实例变量,这样它就不会被释放
像这样的
// .h
@property (strong, nonatomic) TableLoadGroupMembersViewController* tableDelegate;
// .m
UITableView* tableVIEW = [[UITableView alloc]init];
TableLoadGroupMembersViewController* tableDelegate = [[TableLoadGroupMembersViewController alloc] init];
self.tableDelegate = tableDelegate;
[tableVIEW setDelegate:tableDelegate];
[tableVIEW setDataSource:tableDelegate];
[self.view addSubview:tableVIEW];
你有事故记录吗?是否为数据源/委托添加了所有必需的方法?当您将数据源分配给tableview时,将调用其方法。你发布的错误没有给出任何想法。在UITableViewDataSource方法中发布代码。目前还没有代码,它只是从Xcode中的New添加的模板,在投票否决该问题之前,我已将UITableViewControllerB作为类型,请证明:(这似乎是一个合理的问题,我想你是否设置了有效的(已初始化)您的
TableLoadGroupMembersViewController作为tableVIEW
的数据源的实例?实际上我遇到了一个问题。似乎没有调用TableLoadGroupMembersViewController中的代码,因为NSLogging anyware(即使在视图中没有加载)不会给出任何结果