Xcode 从 .xib 过渡到 Storyboard
Posted
技术标签:
【中文标题】Xcode 从 .xib 过渡到 Storyboard【英文标题】:Xcode Transitioning from .xib to Storyboards 【发布时间】:2013-01-11 06:59:26 【问题描述】:我下载了一个示例 xcode 项目来测试它。它有 2 个 .xib 文件(每个都有自己的视图控制器标题和主文件)。我添加了一个故事板,并将 ViewControllers 类设置为游戏和 ViewController(.xibs 的名称),并将主故事板设置为摘要中的故事板,但每当我运行应用程序时,它只运行 .xibs。 我怎样才能让它运行故事板而不是 .xibs? 故事板中是否有我需要更改的部分,或者是否在每个 .xibs .h 和 .m 的代码中?
感谢您的帮助
【问题讨论】:
【参考方案1】:查看您的 App Delegate。这是一个根据目标条件设置为使用 XIBS 或 Storyboard 运行的示例...
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
#ifdef FORMAT_XIB
NSLog (@"XIB VERSION");
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
CVViewController* myViewController = nil;
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
myViewController = [ [CVViewController alloc] initWithNibName:@"CVViewController_iPhone" bundle:nil ];
else
myViewController = [ [CVViewController alloc] initWithNibName:@"CVViewController_iPad" bundle:nil ];
self.window.rootViewController = myViewController;
[self.window makeKeyAndVisible];
#else
NSLog (@"STORYBOARD VERSION");
#endif
return YES;
如果您正在运行 Storyboard 应用程序,则不需要所有这些。删除它,以便应用程序 didFinishLaunchingWithOptions: 方法只显示:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
return YES;
【讨论】:
哇.. 我对这个真的很陌生,有点不知所措。这就是我所拥有的:- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // 应用程序启动后自定义的覆盖点。 self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil]; self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible];返回是;知道我需要什么吗? 对不起,我应该给一个简短的答复。我想说的是,应用程序中的所有内容 didFinishLaunchingWithOptions: 方法都需要执行 - 这一切都是为了加载 Xib。因此,删除除return YES;
之外的所有内容...此外,如果您对问题有更多信息,则应该编辑您的问题(添加更新没有问题),而不是试图将其全部压缩成评论...
感谢您的所有帮助。我将 .xib 的所有内容复制到一个带有情节提要的新项目中,并复制了我的 ViewController.h 和 .m 文件,保留了普通的委托文件。现在可以正常使用了,再次感谢以上是关于Xcode 从 .xib 过渡到 Storyboard的主要内容,如果未能解决你的问题,请参考以下文章
Xcode:跨 XIB 文件的 Outlets 和 Actions