簡體   English   中英

iOS 8:啟動屏幕 StoryBoard 顯示為黑色 [單個 XIB 文件工作正常]

[英]iOS 8: Launch Screen StoryBoard appears black [single XIB file works fine]

所以我嘗試使用本教程為我的 iOS 8 應用程序創建一個啟動故事板

但是,當我啟動我的應用程序時,我只會出現黑屏。 單個啟動 screen.xib 文件運行良好,但是,當我嘗試使用故事板時,它不起作用。

我嘗試了一個只有一個視圖控制器的故事板,但它仍然給我一個黑屏,因此我認為問題在於我的設置中的故事板文件。 有任何想法嗎?

[XCode 6.4 版]

編輯:所以我只想澄清一下,它是顯示為黑色的啟動屏幕。 應用程序加載完成后,主故事板本身會正確顯示

通讀教程並測試它,它沒有說兩件事:

1:您需要將一個UIViewController添加到您的.storyboard文件中,然后選擇它作為初始控制器。

2:如果您想更改的不僅僅是啟動屏幕,您必須轉到項目設置並將“主界面”設置為相應的.storyboard

完成后,您需要做的就是編輯 UIButton/Label/etc 與 ViewController 類的連接。

編輯:

為了澄清起見,您可以通過在其各自的故事板文件中選擇它,然后打開 Attributes Inspector,將 UIView 設置為初始控制器。 “是初始控制器”的選項位於中間。

對於在啟動屏幕中使用 UIImageView 的人

確保您在屬性檢查器中使用沒有擴展名的圖像名稱。

因此,例如,如果您的圖像文件名為launcher.png ,則僅使用launcher作為圖像名稱。

這將在編輯器中將圖像顯示為無效 (?),但在設備上運行時將正確顯示。

(不要問我為什么這樣工作。問 Apple。)

在此處輸入圖片說明

沒有一個答案包含所需的所有步驟,因此這是一個詳盡的解決方案

故事板

首先創建LaunchScreen.storyboard Xcode > File > New > File... > Storyboard > LaunchScreen.storyboard 並將其添加到所有適當的目標。
在這個故事板中,創建一個UIViewController類型的單一視圖控制器。 執行啟動屏幕所需的所有魔法,然后按照以下步驟操作:

  1. LaunchScreen.storyboard > 顯示文件檢查器 >用作啟動屏幕

  2. LaunchScreen.storyboard > 視圖控制器 > 顯示屬性檢查器 >是初始視圖控制器

  3. 項目 > 常規 > 部署信息 > 主界面 > LaunchScreen
    對 [iPhone] 和 [iPad] 重復

  4. 項目 > 常規 > 應用程序圖標和啟動圖像 > 啟動屏幕文件 > LaunchScreen

  5. 如果設置得當,你的Info.plist應該有LaunchScreen .storyboard,沒有根據的.storyboard UILaunchStoryboardNameUIMainStoryboardFile屬性:

     <key>UILaunchStoryboardName</key> <string>LaunchScreen</string> <key>UIMainStoryboardFile</key> <string>LaunchScreen</string>

筆記:

  1. 這與使用 Launch Screen File > Assets為舊設備提供舊圖像並不不兼容。
  2. 特別注意LaunchScreen.storyboardMain.storyboard 一個用於啟動,另一個用於您的應用程序入口點。 他們都需要設置初始視圖控制器

在您用於啟動的故事板中,請確保您為其中存在的單個視圖控制器選擇了初始視圖控制器選項。

我相信我可能有一個類似的問題,需要一些與上述答案不同的東西。

我在 .storyboard 文件中創建了一個新的啟動屏幕,然后在它沒有出現之后我產生了一個新的 .xib 文件,該文件在應用程序啟動時仍然沒有出現。

我發現我的啟動屏幕上的一些圖像有一個舊的 .swift 文件的 Outlet Collection。 從 LaunchScree.xib 中刪除它后,啟動屏幕工作正常。

壞掉的插座

注意插座參考中的小警告標志 -> 警告

確保您設置了入口點,並在您的一般信息中點擊確保您將視圖設置為從筆尖調整大小。 還要確保在您的常規選項卡中設置了啟動點。 在部署信息中。

希望這可以幫助

在這上面花了太長時間,感謝 Apple! 我終於發現我必須刪除視圖控制器中的實際 UIImageView - 不僅僅是圖像 - 才能更改為不同的圖像。 嘗試重命名圖像,以各種不同的方式替換它們,刪除緩存,從設備中刪除應用程序,在構建之前進行清理。 就我所見,原始圖像從任何地方消失了,但它仍然會出現。 最后,我在視圖控制器的頂部添加了一個新的 UIImageView 並拍攝了一張新圖像。 然后我只是刪除了舊的 UIImageView,一切都很好。

解決方案是使用不帶擴展名 png 的圖像名稱。

例如,如果您的圖像文件名為“img.png”,則僅使用“img”。

這將在編輯器中將圖像顯示為無效 (?),但會在運行時正確顯示。

發生這種情況是因為 LaunchScreen.storyboard 僅接受 Assets.xcassets 中的圖像,並且引用 Assets.xcassets 中圖像的方式是不帶擴展名的資源名稱。

我認為使用不帶擴展名的名稱是一種可行的解決方法。

您是否正確地在部署信息中將主界面設置為“主要”(故事板名稱)?

本地化我的應用程序后,我看到了黑屏而不是飛濺。 在 LaunchScreen.storyboard 的文件檢查器的本地化部分,我只有一個本地化的勾號。 所以,我為第二個本地化添加了一個勾號,這解決了這個問題。

@SwiftArchitect 和其他人的回答很好,但我一直看到黑色的啟動屏幕而不是我的啟動故事板。

問題最終是我的故事板失去了與目標的連接。

當我創建它時,我將它移動到項目導航器中的不同組/目錄中,以保持整潔。 大錯! 這將它與目標斷開連接......它現在所在的組/目錄是否連接到目標並不重要!

您可以在位於以下位置的下拉菜單中分辨出不同之處:

Project > General > App Icons and Launch Images > Launch Screen File

當您打開該菜單時,您應該會看到您的故事板作為單擊選項。

不要手動輸入您的故事板名稱- 這表明目標成員資格不正確。

我也在嘗試添加一個啟動屏幕,這個過程讓它出現(謝謝!),但現在應用程序掛在那里,沒有移動到 Main.storyboard 和 viewDidLoad。 我有這個:

  • 啟動屏幕界面文件基名 LaunchScreen
  • 主故事板文件基本名稱 LaunchScreen

如果我將第二個 LaunchScreen 更改為 Main,我確實可以訪問 viewDidLoad 和應用程序的主屏幕,但沒有 LaunchScreen。

sim 和 device 都這樣做。 在 LaunchScreen 之后,我缺少什么才能進入 Main?

暫無
暫無

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

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