簡體   English   中英

Xcode:LaunchScreen.storyboard 沒有出現

[英]Xcode: LaunchScreen.storyboard is not showing up

我正在嘗試設置我的應用程序的啟動屏幕和初始視圖。 但是,我不能讓他們出現。

我有這個設置:

在此處輸入圖片說明

在此處輸入圖片說明

我錯過了一步嗎? 我不應該看到一個帶有“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.
    }
    */

}

對不起,菜鳥問題。

== 更新 ==

當我構建它時,我確實收到了這兩個警告:

file:///Users/emai/Documents/ios/Sherpa/SherpaNewYork/LaunchScreen.storyboard:警告:不支持的配置:由於缺少入口點,場景無法訪問,並且沒有通過 -instantiateViewControllerWithIdentifier: 進行運行時訪問的標識符。

/Users/emai/Documents/ios/Sherpa/SherpaNewYork/LaunchScreen.storyboard:9:由於缺少入口點,場景無法訪問,並且沒有通過 -instantiateViewControllerWithIdentifier: 進行運行時訪問的標識符。

我也為沒有出現的啟動屏幕故事板而苦苦掙扎。 我嘗試了所有我能找到的修復方法都無濟於事。 然后我清除了模擬器上的緩存並且它工作了! 原來是模擬器問題。 我在終端中使用此命令清除了緩存:xcrun simctl erase all

看起來您還沒有使用入口點設置故事板。 設置要顯示為Initial View Controller的第一個場景

在此處輸入圖片說明

當然,這個答案有點晚了。 ;-) 有一些問題,但我偶然發現了一個安靜的簡單解決方案,使用應用程序自動創建的 Launch Screen.storyboard。

打開應用程序設置和應用程序圖標並啟動圖像

在此處輸入圖片說明

在下拉列表中選擇Launch Screen.storyboard ,即使您認為它已經被選中。 選擇后屏幕顯示不會改變。 但是當重新啟動項目時,顯示了啟動屏幕!

順便說一句,為了測試這個整潔,你可以在func 應用程序的最后一行設置一個斷點(應用程序:UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)

啟動屏幕也有同樣的問題。 正如 Abilern 所提到的,不允許使用 ViewController。 如果你有一個只刪除這個有時是不夠的。 LaunchScreen 文件可能仍然與不再可用的 ViewController 有一些連接。 這也是一個問題。

我的修復:

  1. 刪除 LaunchScreen 的 ViewController
  2. 刪除 LaunchScreen.storyboard 中的連接
  3. 從設備中刪除了應用程序
  4. 重新安裝

- >工作:)

您缺少的是啟動屏幕是靜態的! 它不需要控制器或任何東西。 控制器不會做任何事情。 對於啟動屏幕,您只能使用界面構建器來設計 UI,而不是通過代碼。

Xcode 通常應該告訴您,如果您嘗試在啟動屏幕視圖上設置自定義控制器,則會導致錯誤。

所以刪除 LaunchScreen.storyboard + LaunchScreenViewController.swift 文件並添加 Launch Screen.xib 文件可以修復啟動屏幕。 這對我來說很有意義,因為啟動屏幕應該是靜態的並且不使用代碼。

但是在啟動屏幕后視圖仍然是黑色的。 我會為此提出另一個問題。

我知道現在已經很晚了,但我想分享我是如何修復它的,如果您在真實設備上檢查,則嘗試先刪除該應用程序,重新啟動手機,然后重新安裝該應用程序。 如果您已按照所有步驟(例如清除目標 - 常規選項卡等中的緩存和設置)進行操作,它將被修復。

就我而言,項目導航器文件過濾器設置為“最近”。 請參閱 Xcode 的左下角。 我最近取消選擇,文件出現了。

在嘗試了所有其他答案之后,我終於刪除了 LaunchScreen.Storyboard 文件並創建了一個新文件。 這是唯一為我解決問題的方法。

最簡單的解決方案是在模擬器中測試時卸載並重新安裝應用程序。 無需刪除並重新創建LaunchScreen.Storyboard

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM