繁体   English   中英

如何从现有的 iPhone 项目中删除故事板

[英]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;

也许您必须在项目设置中删除主界面。

以下是我正在做的步骤。

  1. 创建一个空项目,或者如果您已经创建了,不用担心,只需按照@trick 的建议从 plist 中删除 StoryBoard 条目。

  2. 从您的项目中删除 MainStoryBorad 文件

  3. 使用名为“MyViewController”的 XIB 文件创建新的 UIViewController

  4. 在您的 AppDelegate.h 中为新控制器“MyViewController”添加 @property

  5. 在您的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM