У меня возникла проблема, из-за которой мне не удалось представить 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