我是Xcode的新手,我正在尝试制作我的第一个培训应用程序。由于显然空应用程序模板是唯一提供预集成核心数据的模板,我选择它。但是,在那之后,我无法使UI工作(它仍然是空的)。
我做了什么:
我尝试将我作为标签栏应用程序创建的另一个项目(它确实反映了我的故事板变化),而没有任何见解。
答案 0 :(得分:76)
注释(或删除)AppDelegate.m中的窗口创建和显示代码,如下所示:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
// self.window.backgroundColor = [UIColor whiteColor];
// [self.window makeKeyAndVisible];
return YES;
}
使用情节提要时,会自动为您创建主UIWindow。在您的情况下发生的是您正在创建另一个白色窗口并将其放在选项卡UI的顶部。
ALSO - 请注意,主/明细模板还为您提供核心数据选项。
答案 1 :(得分:39)
对于空应用程序项目,在添加故事板文件后,您必须做两件事......
在项目Info.plist文件中添加一行:
Key: Main storyboard file base name
Value: Storyboard
(或您为故事板文件命名的任何内容)
删除除application:didFinishLaunchingWithOptions:
以外的return YES;
的内容:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
return YES;
}
答案 2 :(得分:9)
Master-Detail和Utility项目模板还提供Core Data作为选项。
核心数据的Apple模板非常糟糕。它们在应用程序委托中填充了太多功能,并且它们不必要地使用延迟加载,这使事情变得更加复杂。
最好不要查看生成的代码,并将这些功能作为单独的类添加到没有Core Data的项目中。
要回答您当前的问题,默认的空模板会在app delegate的application:didFinishLaunchingWithOptions:
方法中以编程方式创建一个窗口。故事板本身设置了一个窗口,因此您需要从应用程序委托中删除该代码。您在该方法中唯一需要的是return YES;
。