我可以完全删除xib文件吗?

时间:2012-01-18 14:10:40

标签: iphone objective-c ios xcode

我一直在转换一个使用xib文件的简单程序以编程方式完成。我已逐个删除元素并将它们放回代码中。

我最终可以删除整个文件吗?还是用于重要的事情?

似乎有三个。

PhoneContent.xib MyView.xib 的MainWindow.xib

3 个答案:

答案 0 :(得分:3)

您不需要MyView.xib或PhoneContent.xib,因此如果您在代码中重新创建布局,则可以删除它们。

要删除MainWindow.xib,您需要更新应用程序:didFinishLaunchingWithOptions方法以编程方式设置窗口和主视图控制器,但比您需要修改main.m中的main函数更巧妙

而不是这样:

int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, nil);
    [pool release];
    return retVal;
}

你需要它看起来像这样:

int main(int argc, char *argv[]) {

    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([YourAppDelegate class]));
    [pool release];
    return retVal;
}

您还必须从info.plist文件中删除对MainWindow(主nib文件基本名称)的引用。

好。所以现在我告诉你如何删除你的nib文件,你介意我问为什么你这样做?在代码中生成布局是疯狂的!这就像尝试在JavaScript中生成HTML,或者通过在文本文件中将颜色指定为十六进制数来生成图片。

你正在使用一个易于在视觉上进行调整的界面,而不需要在每次移动几个像素时编译和运行,并使其更难维护。

您正在使用保证无错误的布局代码,因为它是自动生成的,并用大量内存泄漏或概念错误的手写代码替换它。

你对nib文件有什么看法?

答案 1 :(得分:3)

是的,您可以删除所有.xib文件。如果您删除MainWindow.xib,请记得在UIApplicationDelegate的{​​{1}} {/ p>中启动您的窗口

didFinishLaunchingWithOptions:

然后设置根视图控制器

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];

也正如尼克·洛克伍德所提到的 - 检查main.m以查看self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; 类是否已设置(默认情况下由Xcode4.2及更高版本完成)

UIApplicationDelegate

最后,从int main(int argc, char *argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 文件中删除Main nib file base name属性。

答案 2 :(得分:3)

您还需要从App_info.plist

中删除主XIb值