前提・実現したいこと
独学でswiftを学んでいます。
現在はswift5.0,iOS12.3想定で、storyboardを使わずにToDoリストの作成をしています。
https://qiita.com/nagisawks/items/222c881d6798c46a390f
https://qiita.com/mochizukikotaro/items/f053495eb130e92e13e8
https://qiita.com/TD3P/items/8f474358d1dd789557f3
上記三つの投稿を参考に構築しています。
UINavigationBarとUILabelの実装を試みましたが、
Thread 1: signal SIGABRTで落ちます。
MainStoryboardは削除済みですが、
併せてDeployment InterfaceでMain InterfaceのMain指定も削除しています。
発生している問題・エラーメッセージ
Thread 1: signal SIGABRT
該当のソースコード
Swift 5.0 ViewController import UIKit extension UIColor { static let normalText = UIColor(red: 0.2, green: 0.2, blue: 0.2, alpha: 1) } extension UIFont { static let normalText = UIFont.systemFont(ofSize: 14) } class ViewController: UIViewController { let label = UILabel() let mainNav = UINavigationBar() let addNav = UINavigationBar() var addBarBtn: UIBarButtonItem! // let backBarBtn: UIBarButtonItem! override func viewDidLoad() { super.viewDidLoad() // Do any additioßnal setup after loading the view. view.backgroundColor = UIColor.white // 画面に名前をつける。ナビゲーションバーのtitleになる。バー内のボタンの設定 self.title = "Home" addBarBtn = UIBarButtonItem(barButtonSystemItem: .add, target: self, action: Selector (("onClick"))) // barButtonSystemItemのコマンドhttps://developer.apple.com/documentation/uikit/uibarbuttonitem/systemitem self.navigationItem.rightBarButtonItem = addBarBtn label.text = "ToDoList" label.textColor = UIColor.normalText label.font = UIFont.normalText // viewにラベルを追加 // constraintsよりも前に追加する必要がある self.view.addSubview(label) // ラベルをトップから10px話した位置に固定 label.topAnchor.constraint(equalTo: view.topAnchor, constant: 10).isActive = true label.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } // addBtnをタップしたときのアクション func onClick() { let second = SecondViewController() self.navigationController?.pushViewController(second, animated: true) } }
Swift 5.0 AppDelegate import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? // 追加したナビゲーションコントローラー var myNavigationController: UINavigationController? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { let first: ViewController = ViewController() // let second : SecondViewController = SecondViewController() myNavigationController = UINavigationController(rootViewController: first) self.window = UIWindow(frame: UIScreen.main.bounds) self.window?.rootViewController = first // window?.rootViewController = ViewController() window?.makeKeyAndVisible() return true } // アプリがアクティブになる度に呼ばれる func applicationDidBecomeActive(application: UIApplication) { } // アプリ閉じそうな時 func applicationWillResignActive(_ application: UIApplication) { } // アプリを閉じた時 func applicationDidEnterBackground(_ application: UIApplication) { } // アプリを開きそうな時 func applicationWillEnterForeground(_ application: UIApplication) { } // アプリを開いた時 func applicationDidBecomeActive(_ application: UIApplication) { }
補足情報(FW/ツールのバージョンなど)
Swift 5.0
Xcode 11.0
iOS 12.3
MacOS Mojave 10.14.6
都合上、アップデートができません。
古いバージョンで申し訳ありませんが、ご助力いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/24 00:59