5St*_*yan 9 xcode interface-builder xib ios5
在使用Xcode 4.2进行任何类型的iOS 5.0开发之前,Xcode在模板中提供了"MainWindow.xib".下载并使用iOS 5.0使用Xcode 4.2后,我注意到所提供的模板都不包含任何"MainWindow.xib"文件.我们还需要这个吗?我注意到在App_Delegate中的"application didFinishLaunchingWithOptions"方法中,模板现在包含创建一些"UIWindow"的代码,如果你有任何导航控制器,它会相应地更新窗口.
// code that was pulled from a Master Detail application template
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我想我的问题是,我是否需要更长时间的"MainWindow.xib",如果是这样,那么为什么Apple模板会排除它们呢?
Mat*_*ham 15
一直以来都不使用MainWindow.xib.可以通过执行以下操作以编程方式加载UIWindow:
1)确保main.m中对UIApplicationMain的调用如下所示:
UIApplicationMain(argc, argv, nil, @"MyAppDelegateClassName");
Run Code Online (Sandbox Code Playgroud)
而不是这个:
UIApplicationMain(argc, argv, nil, nil);
Run Code Online (Sandbox Code Playgroud)
2)确保Info.plist没有值"MainWindow.xib"作为主nib文件.
3)以编程方式在应用程序委托中加载UIWindow.
所以,不,你不必使用MainWindow.xib,实际上,你从来没有.你总是可以通过编程方式做事.
这是一个很好的问题,为什么Apple在默认的Xcode设置中进行了此更改,我不知道答案.但它可能需要具有性能或过渡到ARC或小应用程序文件大小或完全不同的东西.
我认为它现在不存在的原因是,以编程方式创建窗口比打开 xib 文件并取消归档对象要高效得多。一般来说,如果你可以用一行代码完成它,你应该用代码来完成。
阅读 Matthew Gillingham 的回答,了解如何手动更改旧项目以在没有 MainWindow.xib 的情况下工作。
| 归档时间: |
|
| 查看次数: |
7487 次 |
| 最近记录: |