我在应用程序包中有一个iBook文件(比如SampleiBook.iba)(不在文档目录中)。 现在我只想在app中打开SampleiBook。我试过这个,
NSString *path = [[NSBundle mainBundle] pathForResource:@"SampleiBook" ofType:@".iba"];
NSString *stringURL = [@"ibooks://" stringByAppendingPathComponent:path];
NSURL *url = [NSURL URLWithString:stringURL];
if ([[UIApplication sharedApplication] canOpenURL:url])
{
NSLog(@"Yes");
}
[[UIApplication sharedApplication] openURL:url];
iBook应用程序打开,仅显示iBook应用程序中的文件。但我希望打开应用程序包中的那个。
请指导我实现这一目标。
答案 0 :(得分:1)
您似乎正在尝试从应用加载.iba(iBooks Author Book)文件。这不起作用,因为.iba是包含我认为你真正想要加载的.ibooks文件类型的源的文件。
这些天我很快写作。这是我刚刚跑过的一个快速例子。假设解开按钮是从笔尖或故事板连接的
@IBOutlet weak var iBooksBtn: UIButton!
@IBAction func iBooksBtnPressed(sender: AnyObject)
{
let ibookPath = NSBundle.mainBundle().pathForResource("Cupertino",
ofType: "ibooks")!
let url = NSURL(fileURLWithPath: ibookPath)
let interactionController = UIDocumentInteractionController(URL:url!)
interactionController.presentOptionsMenuFromRect(CGRectZero,
inView:self.iBooksBtn, animated:false)
}
答案 1 :(得分:0)
您必须使用UIDocumentInteractionController
在iBooks中打开iBook。
您可以轻松地为mian包中的iBook创建实例:
NSURL *iBookResourceURL = [[NSBundle mainBundle] URLForResource:@"SampleiBook" withExtension:@"iba"];
UIDocumentInteractionController *interactionController =
[UIDocumentInteractionController interactionControllerWithURL: iBookResourceURL];