アプリケーションで *.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 で爆発します。わからない。
私は少し迷っています。誰かがこのクラスを理解するのを手伝ってくれますか?どうすれば正しく動作させることができますか? 前もって感謝します。
EDIT:ちなみに、* .txtファイルも同じ結果で使用しました。