我正在尝试加载包含在引用库中的视图控制器以及单独的资产包。为了做到这一点,我相信我需要使用initWithNibName方法。我添加了以下额外的mtouch参数:
-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文档对于此方法不完整,但在UIViewController上显示将接受nib名称和包的构造函数。但是,这似乎不包含在生成的DLL中。
有没有人有过做这样的事情的经验,或者对如何完成它有任何建议?
答案 0 :(得分:1)
如果对选择器有疑问,找到MonoTouch匹配的最佳方法之一就是使用Miguel的Rosetta Stone。这将告诉您特定选择器绑定的方法(或构造函数)。
如果你想继承现有的类型(例如使用btouch
),你应该编写一些额外的代码(在一个单独的.cs文件中),在生成的.dll中编译(有点像额外的enums
您希望添加到绑定的API)。这是可能的,因为生成器将生成(源方式)部分类。