2016-06-14 57 views
0

使用以下代碼創建彈出窗口。風景中的彈出菜單佔據整個屏幕

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

當用戶點擊在導航欄按鈕,的酥料餅風格上述SEGUE將被觸發並且將所得視圖控制器已得到的tableview。

的問題是,

在肖像模式中,表視圖的大小是按照可用的內容的大小。但是當我將風景視圖改爲肖像時,tableview包含可見的空白單元格,因此這些空單元格將阻止ui。爲什麼?即使在橫向模式下,我也希望tableview不要阻塞整個屏幕。

進出口使用鑑於以下代碼做負載的方法來調整的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

什麼您使用--- DVC後得到了錯誤。 preferredContentSize = [self.tableView sizeThatFits:self.presentingViewController.view.bounds.size]; ---代替 dvc.preferredContentSize = CGSizeMake(180,128); –

+0

如果我將視圖更改爲橫向,視圖仍然會覆蓋整個屏幕,因此它仍然隱藏了用戶界面 – Roger