См. С точкой останова или NSLog this tableView
property of vc
. Он должен быть nil
. Это происходит потому, что компоненты представления контроллера вида будут инициализированы только после того, как был представлен контроллер представления.
Чтобы изменить рамку таблицыView правильно, внутри 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);
Спасибо большое, я боролся вопрос в течение нескольких часов, и это было проблема. –