2016-06-14 9 views
0

Im используя следующий код для создания popover.Popover menu in landscape занимает весь экран

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([[segue identifier] isEqualToString:@"popover"]) { 
     self.popoverTvc = [segue destinationViewController]; 
     self.popoverTvc.popoverPresentationController.delegate = self; 
    } 
} 

Когда пользователь нажимает на кнопку в панели навигации выше переход стиля поповера будет срабатывать и в результате контроллер представления получил TableView.

Проблема заключается в том, что,

В портретном режиме, размер таблицы зрения является в соответствии с размером содержимого доступных. Но когда я изменяю представление с пейзажа на портрет, табличное представление содержит пустые ячейки, которые видны, и, следовательно, эти пустые ячейки блокируют ui. Почему это так? Я хочу, чтобы tableview не блокировал весь экран даже в ландшафтном режиме.

Im используя следующий код в представлении сделал метод загрузки, чтобы изменить размер Tableview

if (self.tableView && self.presentingViewController) { 
    self.preferredContentSize = [self.tableView sizeThatFits:self.presentingViewController.view.bounds.size]; 
} 

ответ

1

Вместо size of table view is as per the size of the contents available. указать размер окна поповер программно.

Полюбит следующим образом:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 

    NSString *identifier = segue.identifier; 
    if ([identifier isEqualToString:@"popover"]) { 

     UIViewController *dvc = segue.destinationViewController; 
     dvc.preferredContentSize = CGSizeMake(180,128); 


     UIPopoverPresentationController *ppc = dvc.popoverPresentationController; 
     if (ppc) { 
      ppc.delegate = self; 
     } 
    } 

И добавить это ниже выше шаг:

- (UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller { 

    return UIModalPresentationNone; 
} 
+0

в ландшафтном режиме, а размер остается 180x128 – Roger

+0

Что ошибка вы получили после использования --- видеоконференции. preferredContentSize = [self.tableView sizeThatFits: self.presentingViewController.view.bounds.size]; --- вместо dvc.preferredContentSize = CGSizeMake (180,128); –

+0

Если я изменил вид на пейзаж, вид остается выше, покрывая весь экран, следовательно, он скрывает ui все еще – Roger

Смежные вопросы