У меня есть приложение, основанное на навигации, в котором я размещаю свои настраиваемые представления в представлении навигации.
Во-первых, Кроме того, я иногда скрываю панель навигации и хочу убедиться, что правильно получаю информацию о кадре. (не с [[UIScreen mainScreen] bounds])
Во-вторых, в общем, как мне получить доступ к кадру супервизора, чтобы я мог разместить представление соответствующим образом?
Я безуспешно пробовал следующее.
-(void) loadView {
[super loadView];
UIView* myView = [[UIView alloc] initWithFrame: CGRectZero];
self.view = myView;
self.view.frame = self.view.superview.frame;
[myView release];
}
или установка кадра в layoutSubviews, но заметил, что layoutSubviews не вызывается. Полагаю, это потому, что у меня нет подвидов в этом конкретном представлении?
Спасибо
-Edit-
за предоставленные ответы, теперь я знаю, что мне нужно установить view.frame на границы супервизора.
Проблема в том, что я не могу получить доступ к супервизору внутри viewDidLoad.
Я вижу, что супервизор правильно установлен в viewWillAppear, но не во viewDidLoad.
Я обнаружил, что viewDidLoad вызывается в разное время, например, когда его нажимает pushViewController или при доступе к self.view
У меня есть следующий код, и viewDidLoad вызывается из nil == controller.view.superview.
if (nil == controller.view.superview) {
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[scrollView addSubview:controller.view];
}
Поскольку я не могу получить доступ к супервизору из viewDidLoad, я не могу разместить представление, как это было раньше в viewDidLoad. Это кажется таким неудобным и излишне сложным.
Любое предложение, пожалуйста?