我正在尝试做一些精心设计的事情,但这应该是可行的.所以这里对你所有的专家都是一个挑战(这个论坛是你们很多人的一部分:)).
我正在创建一个问卷调查"组件",我想在NavigationContoller(我的QuestionManagerViewController)上加载."组件"是"空" UIViewController,可以根据需要回答的问题加载不同的视图.
我这样做的方式是:
UIView子类,定义一些IBOutlets.Question1View.xib (这里可能是我的问题所在).我同时设置UIViewController和UIView为类Question1View的.我重写initWithNib我QuestionManagerViewController的看起来像这样:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:@"Question1View" bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
Run Code Online (Sandbox Code Playgroud)当我运行代码时,我收到此错误:
2009-05-14 15:05:37.152 iMobiDines [17148:20b]***因未捕获的异常终止应用程序'
NSInternalInconsistencyException',原因:'-[UIViewController _loadViewFromNibNamed:bundle:]加载了'Question1View"笔尖,但未设置视图插座."
我确信有一种方法可以使用nib文件加载视图,而无需创建viewController类.
使用MonoTouch,我正在尝试制作自定义视图,因此我可以在屏幕中多次重复使用此视图.(这是一堆标签和按钮)阅读完这篇文章的答案后: 如何将自定义视图添加到monotouch中的XIB文件定义视图 我必须要接近,但这似乎只允许我添加自定义视图,在myCustomView.CS中定义,但我正在寻找的是一种使用单独的.XIB在界面构建器中设计我的自定义视图并仅使用相应的cs文件来添加逻辑的方法.如果我尝试使用相同的名称创建一个XIB,内容将不会显示.
以下步骤:
在MyCustomView.CS我放了[Register("MyCustomView")].
我实现了构造函数 public MyView(IntPtr handle) : base(handle) {}
在Interface Builder中打开ViewController.XIB,添加一个UIView并将其类设置为MyCustomView.
当我运行此代码时,我看到新添加的UIView,但不是视图内部的元素,即MyCustomView.XIB的内容
如果我在MyCustomView.CS的代码中添加了一些内容,this.Backgroundcolor = UIColor.Blue;就会显示,但是添加到.XIB的任何元素都没有.如何告诉Monotouch显示MyCustomView.XIB中定义的所有内容?
在Objective-C示例中,我看到类似"initWithNib"的内容不幸的是,Monoouch api中没有记录"LoadNib"部分,但这听起来像我应该做的事情,但是如何以及在哪里?