When presented in a standalone single view application the following code works a treat.
But when I try to load the same code on UISplitViewController the application crashed,But this code works like a charm in iOS 13 application.But In iOS 14 it is going to crash and following exception occur:
Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'child view controller:<UIPrintPreviewViewController: 0x10394fa00> should have parent view controller:<CXSTransactionSelectionViewController: 0x10389e400> but actual parent is:<UIPrintPanelTableViewController: 0x103808200>'
(UIViewController *)printInteractionControllerParentViewController: (UIPrintInteractionController *)printInteractionController {
return [CXSCommon getParentController_iPhone];
}
(void)Print
{
UIPrintInteractionController *controller =
[UIPrintInteractionController	
sharedPrintController];
		 if(!controller){
				 NSLog(@"Couldn't get shared UIPrintInteractionController!");
				 return;
		 }
		
		 UIPrintInteractionCompletionHandler completionHandler =
		 ^(UIPrintInteractionController *printController, BOOL completed, NSError *error) {
				 if(!completed && error){
						 NSLog(@"FAILED! due to error in domain %@ with error code %ld", error.domain, (long)error.code);
				 }
				 else
				 {
						 NSLog(@"complete");
				 }
		 };
		
UIPrintInteractionController *pic = [UIPrintInteractionController sharedPrintController];
		 pic.delegate						= self;
		 UIPrintInfo *printInfo	= [UIPrintInfo printInfo];
		 printInfo.outputType		= UIPrintInfoOutputGeneral;
		 printInfo.jobName			 = @"My Job";
		 printInfo.duplex				= UIPrintInfoDuplexLongEdge;
		 pic.printInfo					 = printInfo;
		
		 UIMarkupTextPrintFormatter *textPrint = [[UIMarkupTextPrintFormatter alloc] initWithMarkupText:[NSString stringWithFormat:@"<!DOCTYPE html><html><body><p><h1>Hello World</h1></p><p><h2>Hello World</h2></p><p><h3>Hello World</h3></p><p><h4>Hello World</h4></p><p><h5>Hello World</h5></p><p><h6>Hello World</h6></p></body></html>"]];
		 pic.printFormatter = textPrint;
		 if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
				// [controller presentFromBarButtonItem:self.addressButton animated:YES completionHandler:completionHandler];
				
				 [controller presentAnimated:YES completionHandler:completionHandler];
		 }
		 else {
				 [controller presentAnimated:YES completionHandler:completionHandler];
		 }
}