Xcode:LaunchScreen.storyboard没有显示

时间:2015-10-17 16:15:33

标签: ios swift storyboard

我正在尝试设置我的应用的启动屏幕和初始视图。但是,我不能让他们出现。

我有这个设置:

enter image description here

enter image description here

我错过了一步吗?我不应该在启动画面上看到一个带有“blah”的页面吗?相反,当我运行模拟器时,它只是黑色。

另外,我不明白为什么我的初始视图也没有出现。

在我的AppDelegate.swift文件中:

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?

  func application(application: UIApplication,
      didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        self.window?.rootViewController = self.rootViewController()
    return true
  }

  private func rootViewController() -> UIViewController {
    return MapViewController.init()
  }

}

我的MapViewController.swift:

import UIKit

class MapViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        var label = UILabel(frame: CGRectMake(0, 0, 200, 21))
        label.center = CGPointMake(160, 284)
        label.textAlignment = NSTextAlignment.Center
        label.text = "I am a test label"
        self.view.addSubview(label)
        NSLog("heyyyy!!") // <----------------- doesn't get printed either, so I think I'm missing something again...
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */

}

对于noob问题抱歉。

== UPDATE ==

我在构建它时会收到这两个警告:

  

file:///Users/emai/Documents/ios/Sherpa/SherpaNewYork/LaunchScreen.storyboard:警告:不支持的配置:由于缺少入口点而无法访问场景,并且没有通过-instantiateViewControllerWithIdentifier运行时访问的标识符:

     

/Users/emai/Documents/ios/Sherpa/SherpaNewYork/LaunchScreen.storyboard:9:由于缺少入口点而无法访问场景,并且没有通过-instantiateViewControllerWithIdentifier进行运行时访问的标识符:。

10 个答案:

答案 0 :(得分:4)

我还在一个没有出现的发布屏故事板上挣扎。我尝试了一切我无法找到的修复工具。然后我清除了我的模拟器上的缓存,它工作了!原来这是一个模拟器问题。我在终端中使用此命令清除了缓存:xcrun simctl erase all

答案 1 :(得分:2)

看起来您没有使用入口点设置故事板。设置要显示为Initial View Controller

的第一个场景

enter image description here

答案 2 :(得分:2)

确定,这个答案有点晚了。 ;-)有一些问题,但我偶然发现一个安静的简单解决方案使用Launch Screen.storyboard使用应用程序自动创建。

打开应用程序设置,然后打开应用程序图标和启动图像

enter image description here

在DropDown-List中选择启动Screen.storyboard ,即使您认为已经选择了此项。选择后,屏幕显示不会改变。但是当重新启动项目时,显示了启动屏幕!

BTW测试这个整洁,你可以在最后一行设置一个breakpont func application(application:UIApplication,didFinishLaunchingWithOptions launchOptions:[NSObject:AnyObject]?)

答案 3 :(得分:0)

您缺少的是发布屏幕是静态的!它不需要控制器或任何东西。控制器不会做任何事情。对于启动屏幕,您只能使用界面构建器设计UI,而不能通过代码设计。

Xcode通常会告诉您,如果您尝试在启动屏幕视图上设置自定义控制器,则会导致错误。

答案 4 :(得分:0)

因此,删除LaunchScreen.storyboard + LaunchScreenViewController.swift文件并添加Launch Screen.xib文件可以修复启动屏幕。这对我来说很有意义,因为启动屏幕应该是静态的而不是使用代码。

然而,在启动屏幕后,视图仍然是黑色的。我会再提出另一个问题。

答案 5 :(得分:0)

我知道它已经很晚但我想分享我如何修复它,如果你正在检查真实设备然后尝试删除应用程序,重新启动手机然后重新安装应用程序。如果您已按照目标 - 常规选项卡等中的清除缓存和设置等所有步骤进行操作,则会修复此问题。

答案 6 :(得分:0)

就我而言,项目导航器文件过滤器设置为“最近”。参见Xcode的左下方。我取消选择了最近文件,文件显示了。

答案 7 :(得分:0)

在这里尝试所有其他答案之后,我终于删除了LaunchScreen.Storyboard文件并创建了一个新文件。这是唯一为我解决问题的东西。

答案 8 :(得分:0)

启动屏幕出现相同的问题。如Abizern所述,不允许使用ViewController。如果您只有一个,那么删除它有时是不够的。 LaunchScreen文件可能仍然具有到ViewController的某些连接,这些连接不再可用。这也是一个问题。

我的解决方法:

  1. 删除适用于LaunchScreen的ViewController
  2. 删除了LaunchScreen.storyboard中的连接
  3. 从设备上删除了应用程序
  4. 重新安装

->工作:)

答案 9 :(得分:0)

最简单的解决方案是在模拟器中进行测试时卸载并重新安装该应用程序。无需删除并重新创建LaunchScreen.Storyboard