###前提・実現したいこと
ボタンが押された時に関数を呼び出して画面遷移時に次の画面に受け渡して表示させたいのですが、どうもうまくいきません。エラーなどはないのですが、表示されないのでご指摘お願いいたします。
###発生している問題・エラーメッセージ
画面遷移がうまくいかない。
###該当のソースコード
swift3.0
1//1つ目の画面のプログラムです 2class ViewController: UIViewController { 3 //画面から戻ってきたときの処理 4 @IBAction func backToTop(segue: UIStoryboardSegue) { 5 } 6 7 //受け渡す際に使う配列の変数 8 var ukewatasu:String = "" 9 10 //スクールバス四条畷行きの結果をJikokuViewControllerに渡す処理 11 //画面遷移時の処理 12 13 14 override func viewDidLoad() { 15 16 super.viewDidLoad() 17 // Do any additional setup after loading the view, typically from a nib. 18 } 19 20 override func didReceiveMemoryWarning() { 21 super.didReceiveMemoryWarning() 22 // Dispose of any resources that can be recreated. 23 } 24 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 25 if(segue.identifier == "gojikoku") { 26 let jvc: JikokuViewController = (segue.destination as? JikokuViewController)! 27 jvc.a = String(describing: result()) 28 } 29 } 30 31 @IBAction func sbSijyou(_ sender: AnyObject) { 32 result() 33 } 34//こちらが2つ目の画面のプログラムです 35class JikokuViewController: UIViewController { 36 var a:String = "" 37 38 override func viewDidLoad() { 39 super.viewDidLoad() 40 41 //labelに時刻を表示 42 43 jikokuLabel.text = a 44 // Do any additional setup after loading the view. 45 } 46 47 override func didReceiveMemoryWarning() { 48 super.didReceiveMemoryWarning() 49 // Dispose of any resources that can be recreated. 50 } 51 52 53 /* 54 // MARK: - Navigation 55 56 // In a storyboard-based application, you will often want to do a little preparation before navigation 57 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 58 // Get the new view controller using segue.destinationViewController. 59 // Pass the selected object to the new view controller. 60 } 61 */ 62 63 @IBOutlet weak var jikokuLabel: UILabel! 64} 65 66//result関数 67 func result() { 68 69 let timeFormatter = DateFormatter() 70 timeFormatter.dateFormat = "HH:mm:ss" 71 let nowString = timeFormatter.string(from: NSDate() as Date) 72 let nowTime = timeFormatter.date(from: nowString)! 73 let jikokuArray: [(String, String)] = [("次のバス発車時刻 AM","9:10:00"),("次のバス発車時刻 AM","9:50:00"),("次のバス発車時刻 AM","10:10:00"),("次のバス発車時刻 AM","10:50:00"),("次のバス発車時刻 AM","11:10:00"),("次のバス発車時刻 AM","11:30:00"),("次のバス発車時刻 AM","11:50:00"),("次のバス発車時刻 PM","12:10:00"),("次のバス発車時刻 PM","12:50:00"),("次のバス発車時刻 PM","13:10:00"),("次のバス発車時刻 PM","14:10:00"),("次のバス発車時刻 PM","15:10:00"),("次のバス発車時刻 PM","15:20:00"),("次のバス発車時刻 PM","15:50:00"),("次のバス発車時刻 PM","16:05:00"),("次のバス発車時刻 PM","16:42:00"),("次のバス発車時刻 PM","16:50:00"),("次のバス発車時刻 PM","16:55:00"),("次のバス発車時刻 PM","17:00:00"),("次のバス発車時刻 PM","17:05:00"),("次のバス発車時刻 PM","17:50:00"),("次のバス発車時刻 PM","18:05:00"),("次のバス発車時刻 PM","18:35:00"),("次のバス発車時刻 PM","18:50:00"),("次のバス発車時刻 PM","19:05:00"),("次のバス発車時刻 PM","19:35:00"),("次のバス発車時刻 PM","19:50:00"),("次のバス発車時刻 PM","20:05:00"),("次のバス発車時刻 PM","20:35:00"),("次のバス発車時刻 PM","21:05:00") ] 74 75 76 let resultArray: [(String, String)] = jikokuArray.flatMap({ 77 let diff = timeFormatter.date(from: $0.1) 78 return nowTime.timeIntervalSince(diff ?? nowTime) > 0 ? nil : $0 79 }) 80 81 if resultArray.count > 0, let result = resultArray.first { 82 print("\(result.0):\(result.1)") 83 } else { 84 print("本日のダイヤは終了しました。") 85 } 86 } 87
###補足情報(言語/FW/ツール等のバージョンなど)
swift 3.0
xcode 8.0
回答2件
あなたの回答
tips
プレビュー