【发布时间】:2011-03-17 14:27:31
【问题描述】:
我的问题是:我不明白我们可以使用 nib 文件创建 ViewController,而我们可以在没有 nib 文件的情况下创建它。我的意思是:例如,任何人都可以向我解释模板,基于导航的应用程序如何工作,第一个实例化的对象是什么?
感谢您的回答
【问题讨论】:
标签: iphone cocoa-touch uikit
我的问题是:我不明白我们可以使用 nib 文件创建 ViewController,而我们可以在没有 nib 文件的情况下创建它。我的意思是:例如,任何人都可以向我解释模板,基于导航的应用程序如何工作,第一个实例化的对象是什么?
感谢您的回答
【问题讨论】:
标签: iphone cocoa-touch uikit
应用程序的 Info.plist 文件包含一个名为“主 nib 文件基本名称”(NSMainNibFile) 的属性。此处设置的 nib 文件(默认为“MainWindow.xib”)控制启动时将加载的内容。
如果您没有该设置,并且想要启动没有默认 nib 文件的应用程序,则需要在 main.m 文件中传递应用程序委托的名称。
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
http://blog.hplogsdon.com/ios-applications-without-any-nib-files/
【讨论】:
实例化 UIViewControler 的唯一方法是:
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle
这意味着您“通常”要求它加载 .nib 文件...
但您也可以将“nil”传递给两个参数:
myUIViewController = [[MyUIViewController alloc] initWithNibName:nil bundle:nil];
...如果你想直接加载它并自己管理它。通常,您创建一个 UIViewController 的子类(在我的示例中为 MyUIViewController),并在其@implementation 中实现方法 loadView
你需要在哪里创建你的类的视图
- (void)loadView{
UIView *aUIView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320, 480)];
self.view = aUIView;
aUIView.backgroundColor = [UIColor colorWithRed:.2 green:.3 blue:.5 alpha:1];
// aUIView... other properties to set if needed...
[aUIView release];
}
这样您就可以在没有“.nib 文件”的情况下管理它,只通过代码添加所有对象和子视图...
【讨论】: