<Swift5>コードのみで画面遷移する!(コピペで使えます!)<Xcode11>
スポンサードリンク
スポンサードリンク
今回は、タイトル通りStoryBoardを使わずに、コードのみで、画面遷移する方法を記述していきます。
StoryBoardも便利なのですが、やっぱり保守性等考えると、勝手が悪いので、本気の方は、storyboardは使わずに、コードでアプリ作りをしてみて下さい!
現時点(2019)で最新版です!(Swift関連古い記事多すぎですw)
コピー&ペーストで使えますので、そのままXcodeへコピペして、いろいろいじってみて下さい!!
↓これがViewController
import UIKit
class ViewController: UIViewController {
//画面の横幅、縦幅を定義
let screenWidth = Int(UIScreen.main.bounds.size.width)
let screenHeight = Int(UIScreen.main.bounds.size.height)
override func viewDidLoad() {
super.viewDidLoad()
//ボタン生成
let testButton = UIButton()
//ボタンの設置位置を指定
testButton.frame = CGRect(x:screenWidth/4, y:screenHeight/2,width:screenWidth/2, height:screenHeight/5)
//ボタンに表示するテキストを指定
testButton.setTitle("次のページへ", for: .normal)
//ボタンに表示するテキストのカラーを指定
testButton.setTitleColor(.white, for: .normal)
//ボタンに表示するテキストのフォント、サイズを指定
testButton.titleLabel!.font = UIFont(name: "Times New Roman",size: 30)
// testButtonのバックグラウンドカラーを設定
testButton.backgroundColor = .blue
//実際にボタンをViewに表示させる
self.view.addSubview(testButton)
//ボタンが押された時に”buttonTapped"が起動する
testButton.addTarget(self, action: #selector(buttonTapped(_:)), for: UIControl.Event.touchUpInside)
}
@objc func buttonTapped(_ sender: UIButton) {
let nextVC = NextViewController()
let naviC = UINavigationController(rootViewController: nextVC)
self.present(naviC, animated: true, completion: nil)
}
}
↓こっちが新たに作ったNextViewController
作り方はXcode左上の
File→new→File...→SwiftFileでNext
save AsにNextViewControllerでCreate
一度中身全部消して↓コピペしてみて下さい!
import UIKit
class NextViewController: UIViewController {
////画面の横幅、縦幅を定義
let screenWidth = Int(UIScreen.main.bounds.size.width)
let screenHeight = Int(UIScreen.main.bounds.size.height)
override func viewDidLoad() {
super.viewDidLoad()
//viewのバックグラウンドの色を指定
view.backgroundColor = UIColor.white
//画面遷移backButton設置(解説省略)
let backButton = UIButton()
backButton.frame = CGRect(x:screenWidth/4, y:screenHeight/2,width:screenWidth/2, height:screenHeight/5)
backButton.setTitle("戻る", for: .normal)
backButton.setTitleColor(UIColor.blue, for: .normal)
backButton.titleLabel!.font = UIFont(name: "Times New Roman",size: 30)
backButton.backgroundColor = UIColor.gray
view.addSubview(backButton)
//backButtonが押された時に"back"を呼び出す処理
backButton.addTarget(self, action: #selector(NextViewController.back(_:)), for: .touchUpInside)
}
//backButtonが押された時に呼び出されるfunc
@objc func back(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}
}
如何でしたででしょうか?
疑問点等あれば、コメントお願いします。