前提・実現したいこと
storyboardなしのコードのみで開発をしています。
また、UITabBarControllerを使ってtabBarItemを2つ作り、FirstViewControllerとSecondViewControllerに紐付けています。
FirstViewControllerとSecondViewController内の
にlabel.text__(以下のソースコードに記載してあります)__の文字列を画面に表示させたいのですが、label.frameを指定すると文字列は表示され、指定しないと文字列は表示されなくってしまいます。
これは何が原因なのでしょうか?
初心者なのでくだらない質問しれませんが、ご回答のほどよろしくお願いします。
シュミレータ画面
該当のソースコード
CustomTabBarController.swift
import UIKit class CustomTabBarController: UITabBarController { let firstVC = FirstViewController() let secondVC = SecondViewController() override func viewDidLoad() { super.viewDidLoad() firstVC.tabBarItem = UITabBarItem(title: "first", image: nil, tag: 0) secondVC.tabBarItem = UITabBarItem(title: "second", image: nil, tag: 1) self.setViewControllers([firstVC, secondVC], animated: true) } }
FirstViewController.swift
import UIKit class FirstViewController: UIViewController { var label: UILabel = UILabel() override func viewDidLoad() { super.viewDidLoad() print("Fisrt View Controller") view.backgroundColor = .blue // label.frameを記述するとlagel.textが現れるが、記述しないとlabel.textが消えてしまう label.frame = view.frame label.text = "Fisrt View Controller!" label.textAlignment = .center view.addSubview(label) } }
SecondViewController.swift
import UIKit class SecondViewController: UIViewController { var label: UILabel = UILabel() override func viewDidLoad() { super.viewDidLoad() print("Second View Controller") view.backgroundColor = .orange // label.frameを記述するとlagel.textが現れるが、記述しないとlabel.textが消えてしまう label.frame = view.frame label.text = "Second View Controller!" label.textAlignment = .center view.addSubview(label) } }
ソースコードの補足
AppDelegate.swiftとSceneDelegate.swift内のwindowプロパティは下記のようにしてあります。
window = UIWindow(frame: UIScreen.main.bounds) window?.rootViewController = CustomTabBarController() window?.makeKeyAndVisible()
補足情報(ツールのバージョン)
xcode 11.3.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/08 01:29
2020/02/08 01:34
2020/02/08 13:07