将故事板添加到现有项目
Posted
技术标签:
【中文标题】将故事板添加到现有项目【英文标题】:Adding storyboard to existing project 【发布时间】:2012-01-23 14:37:54 【问题描述】:我创建了一个不支持故事板的项目,但后来我添加了一个故事板。故事板运行良好,我在模拟器中加载应用程序时看到了它的内容。
然后我创建了一个视图控制器(UIViewController),我的问题是我无法将故事板中的任何控件绑定到我的控制器。
所以我的问题是如何将我的控制器与故事板连接起来。
【问题讨论】:
【参考方案1】:那些确切的步骤(我使用的是 XCode 4.5 和 ios 6.0):
-
通过File->New->File...->Userinterface->storyboard向项目添加新的storyboard
转到项目摘要并选择 MainStoryboard 并选择您刚刚创建的故事板名称。
从 AppDelegate.m 文件的方法 didFinishLaunchingWithOptions 中,注释除最后一个返回 YES 的语句之外的所有内容。
就是这样。现在您应该在启动项目时看到初始视图。
【讨论】:
【参考方案2】:对于 XCode 6 和 iOS8 beta2:
-
创建一个 Storyboard 文件(我们称之为 Main.storyboard)。选择 iPhone 或 iPad 作为设备类型。
在空白 Main.storyboard 文件中,从对象库中拖动一个 UIViewController。
如果故事板打算用作通用故事板,则切换到文件检查器(在右侧的实用程序部分中),并选中“使用大小类”。
在 storyboard 中选择 View Controller 并切换到 Identity Inspector(在右侧的 Utilities 部分中),然后在“Class”字段中输入 View Controller 的名称。
在导航器部分左侧的“支持文件”文件夹中找到文件“info.plist”。
通过单击“信息属性列表”键右侧的“+”号添加一行。
选择“主情节提要文件基本名称”键,然后在“值”字段中输入情节提要文件的名称(在这种情况下,它将被称为“主”)
在 AppDelegate.m/AppDelegate.swift 中的方法/func "application:didFinishLaunchingWithOptions:"
删除除“return YES”(Objective-C)或 Swift 的“return true”之外的所有代码。
【讨论】:
点 5 到 7 可以通过简单地在目标的“部署信息”主界面的下拉菜单中选择 Main.storyboard 来避免。 同意。我更愿意提供一些“幕后”正在发生的事情。 我有一个很老的项目,我还必须更改 main.c 文件以指定 AppDelegate 类,如以下答案中所述 ***.com/a/17278607/809702【参考方案3】:我找到了自己问题的答案。这很简单:我应该打开故事板,选择视图控制器(它是故事板上的视觉表示),然后转到身份检查器并将类 UIViewController 替换为您的控制器类
【讨论】:
我遇到了与您类似的问题。我有一个现有的项目,我开始时没有故事板。现在我想在我的项目中添加一个故事板,这样我就可以更轻松地添加图像并移动标签。你介意帮助我吗。到目前为止,我添加了一个故事板并将视图控制器放在板上。但是我的 viewcontroller 类不会出现在身份检查器下【参考方案4】:您是否检查过您要连接的控件在控制器中是否有相应的 IBOutlet 或 IBAction?然后你应该可以像往常一样连接它们了。
【讨论】:
嗯,不......当我创建故事板项目时,当我将控制药物控制到控制器时,会创建动作。现在检查 当您使用助手监视器在代码中插入控件时,连接会自动建立。当您之后创建故事板并将控件放入故事板而不接触控制器时,您应该手动执行此操作。 我手动添加了标签属性,但没有结果:(【参考方案5】:添加 Main.storyboard
在 Info.plist 中添加行 > 主故事板文件基本名称:Main
编辑代码:
(BOOL)应用程序:(UIApplication *)应用程序 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions //应用程序启动后自定义的覆盖点。返回 是的;
【讨论】:
【参考方案6】:别忘了检查 main.m:
#import <UIKit/UIKit.h>
#import "YourAppDelegate.h"
int main(int argc, char *argv[])
@autoreleasepool
return UIApplicationMain(argc, argv, nil, NSStringFromClass([YourAppDelegate class]));
【讨论】:
以上是关于将故事板添加到现有项目的主要内容,如果未能解决你的问题,请参考以下文章