Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在Xcode中重新启用或使用故事板?_Ios_Swift_Xcode - Fatal编程技术网

Ios 如何在Xcode中重新启用或使用故事板?

Ios 如何在Xcode中重新启用或使用故事板?,ios,swift,xcode,Ios,Swift,Xcode,我继承了一个要开发的应用程序,以前的工程师没有使用故事板,而是将所有内容硬编码。现在,我必须改变应用程序中项目的格式和位置,我觉得使用故事板会容易得多。他们是否仍然可以使用故事板,让它显示应用程序中硬编码的内容 我已经附上了我右键点击故事板并尝试使用界面生成器的图片,但是当我点击它时什么也没有发生。我还附上了一张代码片段的照片,其他工程师声称该代码片段已经不再需要在AppDelegate中使用故事板。我试着注释掉这行代码,当我这样做的时候,应用程序只是一个黑屏 有关守则内容如下: var win

我继承了一个要开发的应用程序,以前的工程师没有使用故事板,而是将所有内容硬编码。现在,我必须改变应用程序中项目的格式和位置,我觉得使用故事板会容易得多。他们是否仍然可以使用故事板,让它显示应用程序中硬编码的内容

我已经附上了我右键点击故事板并尝试使用界面生成器的图片,但是当我点击它时什么也没有发生。我还附上了一张代码片段的照片,其他工程师声称该代码片段已经不再需要在
AppDelegate
中使用故事板。我试着注释掉这行代码,当我这样做的时候,应用程序只是一个黑屏

有关守则内容如下:

var window: UIWindow? 

window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
回答问题 按代码从故事板加载
rootViewController

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {

    // ....        

    // Initilazie main window.
    let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let rootController = mainStoryboard.instantiateInitialViewController()!

    guard let w = self.window else { return true }

    w.rootViewController = rootController
    w.makeKeyAndVisible()
}

我的建议 我会建议结合现有的用户界面设计的代码和新的用户界面设计的故事板。因为可以通过代码从情节提要加载
UIViewController
。它可以很容易地组合到现有的项目中

// Example
let storyboard = UIStoryboard(name: "DeviceConfigStoryboard", bundle: nil)
let v = storyboard.instantiateViewController(withIdentifier: "upgrade_device") as! DCNavigationViewControllerBase
v.configure(device: device)
如果使用google
多故事板
,您可以找到许多关于将UI划分为多个故事板文件的教程。

回答问题 按代码从故事板加载
rootViewController

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {

    // ....        

    // Initilazie main window.
    let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
    let rootController = mainStoryboard.instantiateInitialViewController()!

    guard let w = self.window else { return true }

    w.rootViewController = rootController
    w.makeKeyAndVisible()
}

我的建议 我会建议结合现有的用户界面设计的代码和新的用户界面设计的故事板。因为可以通过代码从情节提要加载
UIViewController
。它可以很容易地组合到现有的项目中

// Example
let storyboard = UIStoryboard(name: "DeviceConfigStoryboard", bundle: nil)
let v = storyboard.instantiateViewController(withIdentifier: "upgrade_device") as! DCNavigationViewControllerBase
v.configure(device: device)

如果使用google
multiple storyboard
,您可以找到许多关于将UI划分为多个故事板文件的教程。

在Info.plist文件中添加故事板文件的名称

如果在info.plist中找不到密钥“UIMainStoryboardFile”,请将该文件作为源代码打开并添加:

    <key>UIMainStoryboardFile</key>
    <string>Main</string>
UIMainStoryboardFile
主要
这应该将您的故事板设置为应用程序的起点。确保故事板中有初始的ViewController


备注:我仍然建议您坚持使用基于代码的UI,特别是当您在项目中与多个开发人员合作时。从长远来看,制作故事板的便利性可能会耗费您宝贵的时间。

在Info.plist文件中添加故事板文件的名称

如果在info.plist中找不到密钥“UIMainStoryboardFile”,请将该文件作为源代码打开并添加:

    <key>UIMainStoryboardFile</key>
    <string>Main</string>
UIMainStoryboardFile
主要
这应该将您的故事板设置为应用程序的起点。确保故事板中有初始的ViewController


备注:我仍然建议您坚持使用基于代码的UI,特别是当您在项目中与多个开发人员合作时。从长远来看,制作故事板的便利性可能会耗费您宝贵的时间。

您是否在故事板中设置了初始viewcontroller?如果没有,请参考链接,了解如何以编程方式连接起来可能比重新设计整个UI更容易。您是否在情节提要中设置了初始viewcontroller?如果没有,请参考链接,了解如何以编程方式连接起来可能比重新设计整个UI更容易。