[英]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
當然,這個答案有點晚了。 ;-) 有一些問題,但我偶然發現了一個安靜的簡單解決方案,使用應用程序自動創建的 Launch Screen.storyboard。
打開應用程序設置和應用程序圖標並啟動圖像
在下拉列表中選擇Launch Screen.storyboard ,即使您認為它已經被選中。 選擇后屏幕顯示不會改變。 但是當重新啟動項目時,顯示了啟動屏幕!
順便說一句,為了測試這個整潔,你可以在func 應用程序的最后一行設置一個斷點(應用程序:UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?)
啟動屏幕也有同樣的問題。 正如 Abilern 所提到的,不允許使用 ViewController。 如果你有一個只刪除這個有時是不夠的。 LaunchScreen 文件可能仍然與不再可用的 ViewController 有一些連接。 這也是一個問題。
我的修復:
- >工作:)
您缺少的是啟動屏幕是靜態的! 它不需要控制器或任何東西。 控制器不會做任何事情。 對於啟動屏幕,您只能使用界面構建器來設計 UI,而不是通過代碼。
Xcode 通常應該告訴您,如果您嘗試在啟動屏幕視圖上設置自定義控制器,則會導致錯誤。
所以刪除 LaunchScreen.storyboard + LaunchScreenViewController.swift 文件並添加 Launch Screen.xib 文件可以修復啟動屏幕。 這對我來說很有意義,因為啟動屏幕應該是靜態的並且不使用代碼。
但是在啟動屏幕后視圖仍然是黑色的。 我會為此提出另一個問題。
我知道現在已經很晚了,但我想分享我是如何修復它的,如果您在真實設備上檢查,則嘗試先刪除該應用程序,重新啟動手機,然后重新安裝該應用程序。 如果您已按照所有步驟(例如清除目標 - 常規選項卡等中的緩存和設置)進行操作,它將被修復。
就我而言,項目導航器文件過濾器設置為“最近”。 請參閱 Xcode 的左下角。 我最近取消選擇,文件出現了。
在嘗試了所有其他答案之后,我終於刪除了 LaunchScreen.Storyboard 文件並創建了一個新文件。 這是唯一為我解決問題的方法。
最簡單的解決方案是在模擬器中測試時卸載並重新安裝應用程序。 無需刪除並重新創建LaunchScreen.Storyboard
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.