前提・実現したいこと
Storyboard,xibを使用せずにコードのみでアプリを作成しようとしているのですが、
アプリを立ち上げた際に画面が真っ黒の状態になってしまいます。
こちらの解決方法についてご教示いただければ幸いです。
発生している問題・エラーメッセージ
Storyboard 抜きで、コードオンリーで iOS アプリの UI を作る
こちらの記事のソースコードをそのまま使って作成してみたのですが、アプリを立ち上げると真っ黒の状態になってしまいました。
デバックエリアには以下のように表示されておりました。
NoStoryBoard[15434:452943] [WindowScene] Failed to instantiate the default view controller for UIMainStoryboardFile 'Main' - perhaps the designated entry point is not set?
RootviewControllerの設定の部分でうまくいっていないせいだとは思うのですが、どのように修正すれば良いのかがわからない状態です。
知恵をお貸しいただければと思います。
ソースコード
AppDelegate
1import UIKit 2 3@UIApplicationMain 4class AppDelegate: UIResponder, UIApplicationDelegate { 5 6 var window: UIWindow? 7 private(set) lazy var viewController = ViewController() 8 9 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 10 self.window = UIWindow(frame: UIScreen.main.bounds) 11 self.window?.makeKeyAndVisible() 12 self.window?.rootViewController = viewController 13 14 return true 15 } 16 17 func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { 18 return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 19 } 20 21 func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) { 22 23 } 24}
ViewController
1import UIKit 2 3class ViewController: UIViewController { 4 5 override func viewDidLoad() { 6 super.viewDidLoad() 7 // Do any additional setup after loading the view. 8 9 let mainView = MainView(frame: self.view.bounds) 10 mainView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 11 self.view.addSubview(mainView) 12 13 } 14} 15
MainView
1import UIKit 2 3class MainView: UIView { 4 5 let mainLabel: UILabel 6 7 override init(frame: CGRect) { 8 self.mainLabel = UILabel() 9 self.mainLabel.text = "Hello World!" 10 self.mainLabel.textAlignment = .center 11 super.init(frame: frame) 12 self.backgroundColor = .white 13 self.addSubview(mainLabel) 14 } 15 16 required init?(coder: NSCoder) { 17 fatalError("init(coder:) has not been implemented") 18 } 19 20 override func layoutSubviews() { 21 super.layoutSubviews() 22 let labelSize = self.mainLabel.sizeThatFits(self.bounds.size) 23 let x = (self.bounds.width - labelSize.width) / 2 24 let y = (self.bounds.height - labelSize.height) / 2 25 let labelOrigin = CGPoint(x: x, y: y) 26 self.mainLabel.frame = CGRect(origin: labelOrigin, size: labelSize) 27 } 28} 29
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/21 02:08 編集