Skip to content

Commit bc5e623

Browse files
author
Rad Azzouz
committed
Update the Manual Signing example on iOS to use the new Electronic Signatures API.
1 parent 81068f1 commit bc5e623

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

samples/NativeCatalog/ios/NativeCatalog/Examples/CustomPdfView.m

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#import <React/RCTUtils.h>
1212
#import "NativeCatalog-Swift.h"
1313

14-
@interface CustomPdfView()<PSPDFSignatureViewControllerDelegate>
14+
@interface CustomPdfView()<PSPDFSignatureCreationViewControllerDelegate>
1515
@property (nonatomic, nullable) UIViewController *topController;
1616
@end
1717

@@ -85,19 +85,27 @@ - (UIViewController *)pspdf_parentViewController {
8585
}
8686

8787
- (BOOL)startSigning {
88-
// Programmatically show the signature view controller
89-
PSPDFSignatureViewController *signatureController = [[PSPDFSignatureViewController alloc] init];
90-
signatureController.naturalDrawingEnabled = YES;
91-
signatureController.delegate = self;
92-
PSPDFNavigationController *signatureContainer = [[PSPDFNavigationController alloc] initWithRootViewController:signatureController];
93-
[_pdfController presentViewController:signatureContainer animated:YES completion:NULL];
88+
// Programmatically show the signature creation view controller
89+
if (@available(iOS 13.0, *)) {
90+
PSPDFSignatureCreationViewController *signatureController = [[PSPDFSignatureCreationViewController alloc] init];
91+
signatureController.configuration = [PSPDFSignatureCreationConfiguration configurationWithBuilder:^(PSPDFSignatureCreationConfigurationBuilder * _Nonnull builder) {
92+
builder.availableModes = @[@(PSPDFSignatureCreationModeDraw)];
93+
}];
94+
signatureController.delegate = self;
95+
PSPDFNavigationController *signatureContainer = [[PSPDFNavigationController alloc] initWithRootViewController:signatureController];
96+
[_pdfController presentViewController:signatureContainer animated:YES completion:NULL];
97+
} else {
98+
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"This example is not available on iOS 12" message:@"This example requires iOS 13 and later." preferredStyle:UIAlertControllerStyleAlert];
99+
[alert addAction:[UIAlertAction actionWithTitle:@"Dismiss" style:UIAlertActionStyleDefault handler:NULL]];
100+
[_pdfController presentViewController:alert animated:YES completion:NULL];
101+
}
94102

95103
return YES;
96104
}
97105

98106
#pragma mark - PSPDFSignatureViewControllerDelegate
99107

100-
- (void)signatureViewControllerDidFinish:(PSPDFSignatureViewController *)signatureController withSigner:(nullable PSPDFSigner *)signer shouldSaveSignature:(BOOL)shouldSaveSignature {
108+
- (void)signatureCreationViewControllerDidFinish:(PSPDFSignatureCreationViewController * _Nonnull)signatureController API_AVAILABLE(ios(13.0)){
101109
[signatureController dismissViewControllerAnimated:YES completion:^{
102110
NSURL *samplesURL = [NSBundle.mainBundle.resourceURL URLByAppendingPathComponent:@"PDFs"];
103111
NSURL *p12URL = [samplesURL URLByAppendingPathComponent:@"JohnAppleseed.p12"];
@@ -143,7 +151,7 @@ - (void)signatureViewControllerDidFinish:(PSPDFSignatureViewController *)signatu
143151
// Set the bounding box to fit in the signature form element.
144152
annotation.boundingBox = CGRectMake(signatureFormElement.boundingBox.origin.x + 70, signatureFormElement.boundingBox.origin.y - 25, 50, 50);
145153
annotation.color = signatureController.drawView.strokeColor;
146-
annotation.naturalDrawingEnabled = signatureController.naturalDrawingEnabled;
154+
annotation.naturalDrawingEnabled = signatureController.drawView.naturalDrawingEnabled;
147155
annotation.pageIndex = 0;
148156

149157
// Add the ink annotation.
@@ -163,7 +171,7 @@ - (void)signatureViewControllerDidFinish:(PSPDFSignatureViewController *)signatu
163171
}];
164172
}
165173

166-
- (void)signatureViewControllerDidCancel:(PSPDFSignatureViewController *)signatureController {
174+
- (void)signatureCreationViewControllerDidCancel:(PSPDFSignatureCreationViewController * _Nonnull)signatureController API_AVAILABLE(ios(13.0)){
167175
[signatureController dismissViewControllerAnimated:YES completion:NULL];
168176
}
169177

0 commit comments

Comments
 (0)