参照されたライブラリ内に含まれるビューコントローラと別のアセットバンドルをロードしようとしています。これを行うには、initWithNibNameメソッドを使用する必要があると思います。私は、次の追加のmTouch引数を追加しました:MonoTouch UIViewController initWithNibName
-v -v -v -gcc_flags "-L${TargetDir} -F${TargetDir} -F${ProjectDir} -F${TargetDir}/Test.embeddedframework -framework Test"
このObjective-Cのスニペットは、私がする必要が正確に何が行われます。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSBundle *myBundle = [NSBundle bundleWithPath:[NSString stringWithFormat:@"%@/Test.embeddedframework",[[NSBundle mainBundle] bundlePath]]];
NSString *nib = [myBundle pathForResource:@"TestViewController" ofType:@"nib"];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[TestViewController alloc] initWithNibName:@"TestViewController" bundle:myBundle];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
MonoTouchで内から、私はバインディングをコンパイルロードすることができましたし、アセットバンドルをロードします。しかし、私はメッセージ 'initWithNibName'を送る方法を知らない。 APIドキュメントはこのメソッドでは完全ではありませんが、nib名とバンドルを受け入れるUIViewControllerのコンストラクタを表示します。ただし、これは生成されたDLLに含まれて表示されません。
は、誰もがこのような何かをやっての経験を持っているか、それが達成できるかについてどのような提案を持っていますか?
リンクありがとうございました。私はこれまでに遭遇していませんでした。しかし、これは私をあまり助けてくれないようです。私はコンストラクタが定義されているのと同じですが、APIのドキュメントにありますが、私はまだ生成されたDLLの中でこれを見ていません。私はクラスのバインディングを作成しましたが、メッセージ 'initWithNibName'はUIViewControllerに直接あるので、自分のバインディングを定義しませんでした。これは間違いですか? 基本的に私のapi.csクラスはほとんど空です。なぜなら、今度はUIViewControllerを拡張するだけです。コントローラ用のインタフェースを定義しましたが、追加のインスタンスメソッドはありません。 makeは正常に動作します。 –
私は助言をとり、特に以下のようなバインディングでコンストラクタを追加しました:[Export( "initWithNibName:bundle:")] IntPtrコンストラクタ(string nibName、NSBundle bundle);私はそれを使用しようとすると:NIBをバンドルでロードすることができませんでした: 'NSBundle <..../TestHarness.app/Test.embeddedframework>(まだ読み込まれていません)'という名前で 'TestViewController.nib'過去のこのエラーで解決策がない - それ以上の提案はありませんか?再度、感謝します –