программно создать представление с фреймом, установленным на фрейм супервизора?

У меня есть приложение, основанное на навигации, в котором я размещаю свои настраиваемые представления в представлении навигации.

Во-первых, Кроме того, я иногда скрываю панель навигации и хочу убедиться, что правильно получаю информацию о кадре. (не с [[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. Это кажется таким неудобным и излишне сложным.
Любое предложение, пожалуйста?

10
задан eugene 9 November 2010 в 08:28
поделиться