[英]How to remove storyboard from existing iPhone project
我是 iPhone 编程的新手,现在面临故事板的问题。 我想从应用程序中删除故事板并以编程方式从appDelegate
调用视图控制器。 我怎样才能做到这一点?
这是我在appDelegate
代码:
FirstViewController *firstView = [[FirstViewController alloc] init];
self.window.rootViewController = signInView;
return YES;
仍然显示黑屏。 请帮我。 谢谢。
删除主故事板文件基本名称。 这是.plist。
它显示黑屏的原因是您的FirstViewController
类中没有配置任何FirstViewController
。 尝试设置firstView.view.backgroundColor = [UIColor greenColor];
就在return YES'
之前,您会看到 FirstViewController 实际上正在加载; 除了您在FirstViewController
类的init
方法中所做的之外,它没有任何配置。
老实说,在 storyboard 之外配置 ViewControllers 对于初学者来说并不好玩。 我不知道您为什么要这样做,但您的替代方案是使用 .nibs 或手动添加所有内容。 我鼓励你不要删除你的故事板,但如果你必须,你的代码很好。 只需删除故事板文件,或者更好的是,在您决定返回之前不要使用它,因为这是一个更好的主意。
您是否初始化了窗口并使其成为关键?
这是我的一个应用程序的实现:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.rootViewController = [[DDHDemoViewController alloc] init];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
也许您必须在项目设置中删除主界面。
以下是我正在做的步骤。
创建一个空项目,或者如果您已经创建了,不用担心,只需按照@trick 的建议从 plist 中删除 StoryBoard 条目。
从您的项目中删除 MainStoryBorad 文件
使用名为“MyViewController”的 XIB 文件创建新的 UIViewController
在您的 AppDelegate.h 中为新控制器“MyViewController”添加 @property
在您的 AppDelegate.m 中以这种方式更新 didFinishLaunchingWithOptions 方法。
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ;
MyViewController *viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController];
self.window.rootViewController = nav;
[self.window makeKeyAndVisible];
return YES;
}
我认为,如果您的应用程序没有那么多 UI 视图控制器那么复杂,那么使用故事板比使用 xib 更好。 如果您想从项目中删除故事板并使用 nib 与开发一起使用,请执行以下链接的步骤:
http://www.wastedpotential.com/create-an-ios-app-without-storyboards-in-xcode-5/
从您的项目中删除 MainStoryBorad 文件。
从 info.plist 文件中删除 MainStroryBoard Key。
从项目设置中清除 MainInterface 选项。
使用名为“MyViewController”的 XIB 文件创建新的 UIViewController
在您的 AppDelegate.h 中为新控制器“MyViewController”添加 @property
在您的 AppDelegate.m 中以这种方式更新 didFinishLaunchingWithOptions 方法。
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] ;
MyViewController *viewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController];
self.window.rootViewController = nav;
[self.window makeKeyAndVisible];
return YES;
}
请找到以下链接并检查事物.. 1. Info.plist 或 General Info -> 删除主界面 2. 检查 .xib 连接 -> 添加自定义类,查看 .xib 中的连接
https://github.com/sunilhts/RemoveDefaultStoryBoard
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.