是否可以根据目标更改'is initial view controller'?



我有一个iOS产品,它有几个不同的sku,每个sku都应该从不同的视图控制器开始。我用target分隔了不同的sku,这允许我指定该版本产品所需的预处理器。

我想做的一件事是能够做的,然而,是改变'是初始视图控制器'的值在故事板中,为了建立不同的sku,而不必手动检查框的打开或关闭取决于我正在建设。

所以我的问题是,这可以通过目标或编程来完成(所以我可以使用带有特定SKU预处理器的#ifdef来完成)?

提前感谢!

你必须在代码中使用故事板中分配的标识符来完成它。你可以创建一个目标定义头文件,或者在AppDelegate.m:

的开头执行#ifdef
#ifdef TARGET_FOO
#define INITIAL_VC_ID @"FOO_ID"
[...]

然后在你的应用委托的application:didFinishLaunchingWithOptions:中你可以这样做:

UIWindow *window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window = window;
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
[window setRootViewController:[mainStoryboard instantiateViewControllerWithIdentifier:INITIAL_VC_ID]];
[window makeKeyAndVisible];
return YES;

这要求您从项目的Info中删除任何"Main storyboard"引用。

相关内容

最新更新