【问题标题】:Adding storyboard to existing project将故事板添加到现有项目
【发布时间】:2012-01-23 14:37:54
【问题描述】:

我创建了一个不支持故事板的项目,但后来我添加了一个故事板。故事板运行良好,我在模拟器中加载应用程序时看到了它的内容。

然后我创建了一个视图控制器(UIViewController),我的问题是我无法将故事板中的任何控件绑定到我的控制器。

所以我的问题是如何将我的控制器与故事板连接起来。

【问题讨论】:

    标签: objective-c ios storyboard


    【解决方案1】:

    那些确切的步骤(我使用的是 XCode 4.5 和 iOS 6.0):

    1. 通过File->New->File...->Userinterface->storyboard向项目添加新的storyboard
    2. 转到项目摘要并选择 MainStoryboard 并选择您刚刚创建的故事板名称。
    3. 从 AppDelegate.m 文件的方法 didFinishLaunchingWithOptions 中,注释除最后一个返回 YES 的语句之外的所有内容。

    就是这样。现在您应该在启动项目时看到初始视图。

    【讨论】:

      【解决方案2】:

      对于 XCode 6 和 iOS8 beta2:

      1. 创建一个 Storyboard 文件(我们称之为 Main.storyboard)。选择 iPhone 或 iPad 作为设备类型。
      2. 在空白 Main.storyboard 文件中,从对象库中拖动一个 UIViewController。
      3. 如果故事板打算用作通用故事板,则切换到文件检查器(在右侧的实用程序部分中),并选中“使用大小类”。
      4. 在 storyboard 中选择 View Controller 并切换到 Identity Inspector(在右侧的 Utilities 部分中),然后在“Class”字段中输入 View Controller 的名称。
      5. 在导航器部分左侧的“支持文件”文件夹中找到文件“info.plist”。
      6. 通过单击“信息属性列表”键右侧的“+”号添加一行。
      7. 选择“主情节提要文件基本名称”键,然后在“值”字段中输入情节提要文件的名称(在这种情况下,它将被称为“主”)
      8. 在 AppDelegate.m/AppDelegate.swift 中的方法/func "application:didFinishLaunchingWithOptions:" 删除除“return YES”(Objective-C)或 Swift 的“return true”之外的所有代码。

      【讨论】:

      • 点 5 到 7 可以通过简单地在目标的“部署信息”主界面的下拉菜单中选择 Main.storyboard 来避免。
      • 同意。我更愿意提供一些“幕后”正在发生的事情。
      • 我有一个很老的项目,我还必须更改 main.c 文件以指定 AppDelegate 类,如以下答案中所述 stackoverflow.com/a/17278607/809702
      【解决方案3】:

      我找到了自己问题的答案。这很简单:我应该打开故事板,选择视图控制器(它是故事板上的视觉表示),然后转到身份检查器并将类 UIViewController 替换为您的控制器类

      【讨论】:

      • 我遇到了与您类似的问题。我有一个现有的项目,我开始时没有故事板。现在我想在我的项目中添加一个故事板,这样我就可以更轻松地添加图像并移动标签。你介意帮助我吗。到目前为止,我添加了一个故事板并将视图控制器放在板上。但是我的 viewcontroller 类不会出现在身份检查器下
      【解决方案4】:

      您是否检查过您要连接的控件在控制器中是否有相应的 IBOutlet 或 IBAction?然后你应该可以像往常一样连接它们了。

      【讨论】:

      • 嗯,不......当我创建故事板项目时,当我将控制药物控制到控制器时,会创建动作。现在检查
      • 当您使用助手监视器在代码中插入控件时,连接会自动建立。当您之后创建故事板并将控件放入故事板而不接触控制器时,您应该手动执行此操作。
      • 我手动添加了标签属性,但没有结果:(
      【解决方案5】:
      1. 添加 Main.storyboard

      2. 在 Info.plist 中添加行 > 主故事板文件基本名称:Main

      3. 编辑代码:

      • (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]));
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-25
          相关资源
          最近更新 更多