我正在尝试通过我的应用程序打开一个 *.epub 文件,但我不太明白如何使用 UIDocumentInteractionController 类来制作它。我在网上看过官方的 IOS文档和示例以及一些示例,但我不明白该类是如何工作的。这就是我的做法,我取得的成就和我不明白的:
我有一个带有 UIButton 的 UIView:
using MonoTouch.UIKit;
using MonoTouch.Foundation;
using System.Drawing;
public class MyView : UIViewController
{
UIButton myBtn;
public MyView() :base()
{
View.Frame = new RectangleF(0,0,1024,768);
var myRect = new RectangleF(300,300,100,50);
myBtn = UIButton.FromType(UIButtonType.RoundedRect);
myBtn.Frame = myRect;
myBtn.TouchUpInside += delegate
{
var dic = UIDocumentInteractionController.FromUrl(new NSUrl("http://192.168.50.50:2020/myfile.epub"));
var dicDel = new UIDocumentInteractionControllerDelegate();
dic.Delegate = dicDel;
InvokeOnMainThread(delegate
{
var result = dic.PresentOpenInMenu(myRect, View, true);
//If I do this -> NullReferenceException because delegate is null (something about autorelease?? Don't know)
if(!result) dic.Delegate.DidDismissOpenInMenu(dic);
});
}
}
}
最奇怪的是,如果我在调用 PresentOpenInMenu() 方法之前调试和检查“dic”(没有委托),它会显示菜单(返回 true),但在执行此操作之后,应用程序在 Main.cs 上爆炸了,因为自动释放的东西我不明白。
我有点失落。有人可以帮我理解这门课,我怎样才能让它正常工作?提前致谢。
编辑:顺便说一句,我也使用了 *.txt 文件,结果相同。