UIPopoverPresentationController не показывает navBar для contentViewController - PullRequest
0 голосов
/ 03 ноября 2019

У меня возникла проблема, из-за которой мне не удалось представить UITableviewController (AssetTypePicker) в качестве contentViewController для UIPopoverPresentationController с оставшимся видимым navBar предыдущего. Когда я представляю то же самое в iPhone, я не использую popovercontroller. И поэтому в этом случае UITableViewController (AssetTypePicker) запускается сразу после нажатия кнопки, при этом кнопка «плюс» отображается в правом углу навигационной панели. Функциональность кнопки «плюс» заключается в представлении другого viewController (NewAssetCreatorController), где заполняются детали строки, добавляемой в uitableviewcontroller (AssetTypePicker). Как только я закончу заполнять необходимые детали, я нажимаю кнопку «Готово», чтобы вернуться обратно в UITableViewController (AssetTypePicker). [1]: https://www.dropbox.com/s/2o78km2otsu8tqr/Screenshot%202019-11-03%20at%2010.09.16%20PM.png?dl=0, [2]: https://www.dropbox.com/s/ljl56tx7ccryrvk/Screenshot%202019-11-03%20at%209.58.06%20PM.png?dl=0, [3]: https://www.dropbox.com/s/twkvh96197bzuru/Screenshot%202019-11-03%20at%209.58.18%20PM.png?dl=0, [4]: ​​https://www.dropbox.com/s/ojadro55itxbtcr/Screenshot%202019-11-03%20at%209.58.52%20PM.png?dl=0

Теперь, чтобы полностью реализоватьэту функцию на iPad, я не сильно меняюсь, за исключением того, что я делаю AssetTypePicker contentViewController для popoverpresentationcontroller-

-(IBAction)showAssetTypePicker:(UIButton *)sender{
   NSLog(@"AssetTypePicker button pressed!!");
   assetTypePicker= [[AssetTypePicker alloc] init];
   [self.view endEditing:YES];

   NSLog(@"current item's assetType- %@",_item.assetType);

   [assetTypePicker setItem:_item];


  if ([[UIDevice currentDevice] userInterfaceIdiom]== UIUserInterfaceIdiomPad) {
    [assetTypePicker.tableView setDelegate:self];//Setting DetailViewController as a UITableView's delegate

    assetTypePicker.modalPresentationStyle= UIModalPresentationPopover;

    [self presentViewController:assetTypePicker animated:YES completion:nil];

    //Configuring the PopoverPresentationController
    assetTypePickerPopover= assetTypePicker.popoverPresentationController;
    NSLog(@"assetTypePickerPopover- %@",assetTypePickerPopover);

    [assetTypePickerPopover setDelegate:self];

    assetTypePickerPopover.sourceView= sender;
    assetTypePickerPopover.sourceRect= sender.bounds;
    assetTypePickerPopover.permittedArrowDirections= UIPopoverArrowDirectionAny;

  }
  else{//..for iPhone
    [self.navigationController pushViewController:assetTypePicker animated:YES];
  }
}

После этого я вижу AssetTypePicker, отображаемый внутри PopoverPresentationController с navBar, у которой отсутствовала кнопка «плюс» - https://www.dropbox.com/s/5sfpat05m7un2pg/Screenshot%202019-11-03%20at%209.56.56%20PM.png?dl=0

...