У меня есть UIPopoverController с двумя контроллерами представления внутри него.Я строю это так:
CommentsPopoverController *commentsPopoverController = [[CommentsPopoverController alloc] init];
self.delegate = commentsPopoverController;
commentsPopoverController.navigationItem.title = @"Comments";
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:commentsPopoverController];
popover = [[UIPopoverController alloc] initWithContentViewController:navController];
Внутри моего commentsPopoverController у меня есть это:
commentsViewController = [[CommentsViewController alloc] init];
commentsViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
addCommentsViewController = [[AddCommentViewController alloc] init];
addCommentsViewController.view.frame = CGRectMake(0, commentsViewController.view.bounds.size.height - 200, 320, 346);
addCommentsViewController.view.backgroundColor = [UIColor darkGrayColor];
[self.view addSubview:addCommentsViewController.view];
[self.view addSubview:commentsViewController.view];
Поэтому, когда я впервые загружаю поповер, addCommentsViewController скрывается комментариями ViewController.Когда я раскрываю это, это выглядит так:
Пока все хорошо.У меня проблема в том, что отсюда, когда пользователь поворачивает устройство или показывает клавиатуру или показывает клавиатуру, ТОГДА поворачивает устройство, вещи начинают выходить из строя.Контроллер вида сверху (commentsViewController), который является UITableView, всегда делает правильные вещи, независимо от того, какая ориентация или показывает ли клавиатура.Но контроллер нижнего вида (addCommentsViewController) не меняет автоматически свой origin.y, чтобы оставаться непосредственно под контроллером верхнего вида.
Так что мне в основном пришлось взломать дерьмо из моего кода, чтобы сохранить addCommentsViewControllerнепосредственно под commentsViewController, постоянно вычисляя высоту контроллера верхнего вида, чтобы я мог настроить origin.y контроллера нижнего вида.Это включало сброс NSNotifications для состояния отображения / скрытия клавиатуры, а также для ориентации устройства и постоянного пересчета.Очень хакерский и уродливый.
Итак, мой вопрос (наконец-то): есть ли более простой способ контролировать эти взгляды, или я застрял, взламывая его так, как я это сделал?