基本的にアプリでドキュメントを印刷するオプションがあります。現在、いくつかの文書は印刷が許可されていません (条件が指定されていない限り)。だから私はデリゲートを使用しています。
Objective C
と の両方を組み合わせて使用していることに注意してくださいSwift
。
基本的に私の印刷コードは次のとおりです。
if ([self.delegate respondsToSelector:@selector(shouldPrintDocument)]) {
BOOL shouldPrint = [self.delegate shouldPrintDocument];
NSLog(@"Should Print %d", shouldPrint);
if (shouldPrint){
//We will print here
}
}
ところで、Swift
私が本質的に行う必要があるのは、ドキュメントの印刷を続行するかどうかをユーザーに確認することです。だから、私はを使用しUIAlertController
ます。
問題は、このアラート ビューからブール値を返す方法です。
func shouldPrintDocument() -> Bool {
let alertController = UIAlertController(title:"Confirm Print",
message: message,
preferredStyle: UIAlertControllerStyle.Alert)
let cancelAction: UIAlertAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: {(action: UIAlertAction) -> Void in
alertController.dismissViewControllerAnimated(true, completion: { _ in })
return false
})
alertController.addAction(cancelAction)
let ok: UIAlertAction = UIAlertAction(title: "Confirm", style: .Default, handler: {(action: UIAlertAction) -> Void in
alertController.dismissViewControllerAnimated(true, completion: { _ in })
//Perform some core data work here, i.e., save a few things and return
return true // This is where the issue comes in
})
alertController.addAction(ok)
self.presentViewController(alertController, animated: true, completion: nil)
}