質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

994閲覧

textFieldの文字とSegmented controlが選んだ項目を別のviewControlerのタイトルやラベルに表示する方法

Tomzy

総合スコア104

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/05/16 09:32

編集2019/05/17 02:49

質問の概要

複数のtextFieldとSegmented controlを設定して、インプット文字と選ばれた項目を別のviewControlerのナビゲーションバーのタイトルやラベルに表示させるアプリを制作しています。

最初データーベースのRealmを使ったため、思わぬ表示エラーがでましたのでRealmを止めてSingletonを使用した共通データの受け渡し方法を使い作りなおしています。しかし、エラーがでて行き詰まっています。ご教示ください。

現れた現象

タイトルやラベルの表示そのものが出ず、3箇所同じようなエラーがでて先に進まないでいます。

エラーのでるところは下記のコードに記載しました。エラーは > Use of unresolved identifier 'JikokuDataJikokuShuruiSeg'
です。

参考にしたサイト情報

【Swift4】シングルトン(Singleton)を使用した共通データの受け渡し
リンク内容

textFieldとsegmented controlを設定した画面のTorikomiSetteiViewController.swiftのコードは下記のとおりです。

import UIKit import AVFoundation import WebKit //シングルトン定義 class SharedData { private static let sharedDataSingleton = SharedData() var id = 0 var jikokuShuruiSeg = 0 var youbiSeg = 0 var oufukuSeg = 0 var textEkimei = "" var textHoumen = "" var textURL = "" var jikokuHyouImage: Data? var category = 0 class func sharedObject() -> SharedData{ return SharedData.sharedDataSingleton } enum JikokuDataJikokuShuruiSeg: Int { case realBus case busTime case railTime case otherTime } enum JikokuDataYoubiSeg: Int { case sunday case saturday case sunSatday case monFriday } enum JikokuDataOufukuSeg: Int { case outward case fukuro case other } } class TorikomiSetteiViewController: UIViewController, UITextFieldDelegate, WKUIDelegate, WKNavigationDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate, GADBannerViewDelegate { @IBOutlet weak var jikokuShuruiSeg: UISegmentedControl! @IBOutlet weak var youbiSeg: UISegmentedControl! @IBOutlet weak var oufukuSeg: UISegmentedControl! @IBOutlet weak var textEkimei: UITextField! @IBOutlet weak var textHoumen: UITextField! @IBOutlet weak var torikomiID: UILabel! @IBOutlet weak var buttonJikokuKeyboard: UIButton! override func viewDidLoad() { super.viewDidLoad() textEkimei.delegate = self as UITextFieldDelegate //ウエブサイトGoogleのボタンが押されたときのデータの隣への移送と画面遷移 @IBAction func webSiteGoogle(_ sender: Any) { print("ここまできたwebSiteGoogleボタンが押された") //呼び出すとき let sharedData = SharedData.sharedObject() //segmented controlの選択数値を取得 sharedData.jikokuShuruiSeg = jikokuShuruiSeg.selectedSegmentIndex sharedData.youbiSeg = youbiSeg.selectedSegmentIndex sharedData.oufukuSeg = oufukuSeg.selectedSegmentIndex //テキストフィールドの名前を取得 sharedData.textEkimei = self.textEkimei.text! sharedData.textHoumen = self.textHoumen.text! print("ここまで来たデータの読み込み", sharedData) let webSiteGoogle = storyboard?.instantiateViewController(withIdentifier: "webSiteGoogle") as! TorikomiWebViewController //Navigation Controllerを使ってコードで遷移するコード navigationController?.pushViewController(webSiteGoogle, animated: true) print("ここまできたwebSiteGoogle画面への遷移") }

上記のGoogleボタンにより遷移する画面(segmented controlの選択結果を表示する画面TorikomiWebViewController.swift)のコードは下記のとおりです。

import Foundation import AVFoundation import UIKit import WebKit var label: UILabel! class TorikomiWebViewController: UIViewController, WKUIDelegate, UINavigationControllerDelegate, WKNavigationDelegate, GADBannerViewDelegate { @IBOutlet weak var jikokuShuruiSeg: UISegmentedControl! @IBOutlet weak var youbiSeg: UISegmentedControl! @IBOutlet weak var oufukuSeg: UISegmentedControl! @IBOutlet weak var navBar: UINavigationBar! @IBOutlet weak var webEkimei: UILabel! @IBOutlet weak var webHoumen: UILabel! @IBOutlet weak var webYoubi: UILabel! @IBOutlet weak var webOuFuku: UILabel! var webView: WKWebView! let firstViewUrl = "https://google.com" override func viewDidLoad() { super.viewDidLoad() print("ここまで来たうウェブ画面での保存データ", sharedData) //時刻表取得方法のsegmented controlによりナビゲーションバーのタイトルを表示 switch JikokuDataJikokuShuruiSeg(rawValue: sharedData.jikokuShuruiSeg)! {  //ここにエラーUse of unresolved identifier 'JikokuDataJikokuShuruiSeg' case .realBus: self.title = "リアルタイムバス時刻表" case .busTime: self.title = "バスストップ時刻表" case .railTime: self.title = "鉄道時刻表" case .otherTime: self.title = "その他時刻表" } //Labelに駅名を表示 webEkimei.text = sharedData.textEkimei //Labelに方面を表示 webHoumen.text = sharedData.textHoumen //ラベルに曜日を記載 switch JikokuDataYoubiSeg(rawValue: sharedData.youbiSeg)! {//ここにエラーUse of unresolved identifier 'JikokuDataYoubiSeg' case .sunday: webYoubi.text = "日曜日" case .saturday: webYoubi.text = "土曜日" case .sunSatday: webYoubi.text = "日・土曜" case .monFriday: webYoubi.text = "月ー金曜" } //ラベルに往路・復路を記載 switch JikokuDataOufukuSeg(rawValue: sharedData.oufukuSeg)! {//ここにエラーUse of unresolved identifier 'JikokuDataOufukuSeg' case .outward: webOuFuku.text = "往路" case .fukuro: webOuFuku.text = "復路" case .other: webOuFuku.text = "その他" }

狙っている設定画面のスクリーンショット(現在はエラーデビルドできません)

イメージ説明

上記Googleボタンで遷移した画面のタイトルとラベルが表示されているスクリーンショット但し、現在はエラーでビルドできません。

イメージ説明

ご参考事項

AAA
環境は下記のとおりです。
MacBook Pro (15-inch, 2016)
Mojave OS10.14.4
Xcode Version 10.2.1 (10E1001)
Swift4

BBB
この問題箇所は時刻表を取得する画面で、時刻表の種類、
曜日、往復路の区別をsegmented controlで指定し、
駅名と方面をテキストでインプットして、Google検索、ヤッフー検索、
カメラ、画像選択のボタンでそれぞれの画面に遷移するものです。
また、Google検索画面に遷移すると、それぞれ選択したものと
インプットしたものが表示される画面が現れます。
ヤッフー検索、カメラ、画像選択の画面でも同様な表示を
使います。

CCC
本件が成功した場合、次のステップではGoogle検索結果のURLと上記選択項目とインプット項目も
合わせたデーターを取り込む予定をしています。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2019/05/17 01:54

一部コード化のMarkdownがおかしいです。また、コードのインデントが崩れている箇所があるので修正して下さい。 もう少し丁寧に書いていただけるとありがたいです。 (ざっとでいいので、書き込み後に全体を見渡すくらいはして下さい)
Tomzy

2019/05/17 02:12

失礼しました。これからコードの体裁を修正します。今後気をつけます。
fuzzball

2019/05/17 02:28

出来ればこの質問から実践して欲しいのですが。 あとから見る人のことはどうでもいいですか?
Tomzy

2019/05/17 02:52

「これから」と書いたのはこの質問を修正する意味でした。表現がまずくて誤解を与えました。ごめんなさい。先ほど実施しました。
fuzzball

2019/05/17 02:59

修正ありがとうございます。こちらこそ早とちりで失礼しました。
guest

回答1

0

ベストアンサー

SharedDataの中で定義しているのでSharedData.JikokuDataJikokuShuruiSegではないでしょうか?

投稿2019/05/17 01:52

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tomzy

2019/05/17 02:11

修正しましたらエラーが消えてビルド結果も狙ったとおりsegmented controlの選択どおり表示されました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問