首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MonoTouch UIViewController initWithNibName

MonoTouch UIViewController initWithNibName
EN

Stack Overflow用户
提问于 2011-12-29 01:43:48
回答 1查看 858关注 0票数 1

我正在尝试加载一个包含在引用库中的视图控制器,以及一个单独的资产包。为了做到这一点,我认为我需要使用initWithNibName方法。我添加了以下额外的mtouch参数:

代码语言:javascript
复制
-v -v -v -gcc_flags "-L${TargetDir} -F${TargetDir} -F${ProjectDir} -F${TargetDir}/Test.embeddedframework -framework Test"

这个Objective-C代码片段做的正是我需要做的事情:

代码语言:javascript
复制
- (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

有没有人有做这样的事情的经验,或者对如何实现有任何建议?

EN

回答 1

Stack Overflow用户

发布于 2011-12-29 10:58:53

当对选择器有疑问时,查找MonoTouch匹配的最好方法之一是使用米格尔的Rosetta Stone。这将告诉你一个特定的选择器也绑定到了哪个方法(或构造函数)。

如果你想继承现有的类型(例如使用btouch),那么你应该编写一些额外的代码(在一个单独的.cs文件中),以便在生成的.dll中编译(有点像你想添加到绑定的enums中的额外的API)。这是可能的,因为生成器将生成(源代码方面的)部分类。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8659328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档