使用断点或 NSLog查看tableView
. vc
应该是nil
。发生这种情况是因为视图控制器的视图组件只有在视图控制器出现后才会被初始化。
要正确更改 tableView 的框架,请在 内部AZControlViewController.m
实现上述方法并根据需要更改框架。
-(void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
self.tableView.frame = CGRectMake(0, 195, 320, 500);
}
如果您仍想从外部类设置此框架,请创建一个属性来存储您想要的框架,然后将此框架分配给 tableView 的框架。
在AZControlViewController.h
:
@property (nonatomic, assign) CGRect tableViewFrame;
在AZControlViewController.m
:
-(void)viewDidLayoutSubviews
{
[super viewDidLayoutSubviews];
self.tableView.frame = self.tableViewFrame;
}
在其他地方:
AZControlViewController *vc = [[AZControlViewController alloc] init];
vc.tableViewFrame = CGRectMake(0, 195, 320, 500);