我正在尝试加载一个包含在引用库中的视图控制器,以及一个单独的资产包。为了做到这一点,我认为我需要使用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中。
http://iosapi.xamarin.com/?link=C%3aMonoTouch.UIKit.UIViewController(System.String%2cMonoTouch.Foundation.NSBundle
有没有人有做这样的事情的经验,或者对如何实现有任何建议?
发布于 2011-12-29 10:58:53
当对选择器有疑问时,查找MonoTouch匹配的最好方法之一是使用米格尔的Rosetta Stone。这将告诉你一个特定的选择器也绑定到了哪个方法(或构造函数)。
如果你想继承现有的类型(例如使用btouch),那么你应该编写一些额外的代码(在一个单独的.cs文件中),以便在生成的.dll中编译(有点像你想添加到绑定的enums中的额外的API)。这是可能的,因为生成器将生成(源代码方面的)部分类。
https://stackoverflow.com/questions/8659328
复制相似问题