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

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

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

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

Q&A

解決済

2回答

1858閲覧

xibで作成したaletで入力したものをtableViewに横一列に表示させたい。

退会済みユーザー

退会済みユーザー

総合スコア0

TableView

TableView(UITableView)とは、リスト形式で表示するコントロールで、ほとんどのアプリに使用されています。画面を「行」に分けて管理し、一般的には各行をタップした際に詳細画面に移動します。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

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

0グッド

0クリップ

投稿2018/02/19 00:15

編集2018/02/19 05:29

ViewController.swift

swift

1import UIKit 2 3class ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource{ 4 5 @IBOutlet weak var mytableView: UITableView! 6 var pickerView = UIPickerView() 7 let number = ["回","lep"] 8 let datalist2 = ["kg","lbs"] 9 @IBAction func customalertbtr(_ sender: Any) { 10 let customAlert = CustomAlert(frame: CGRect(x: 0.0, y: 0.0, width: 350 , height: 275)) 11 customAlert.center = self.view.center 12 customAlert.backgroundColor = .orange 13 //print(customAlert) //これ追加 14 self.view.addSubview(customAlert) 15 } 16 17 override func viewDidLoad() { 18 super.viewDidLoad() 19 // Do any additional setup after loading the view, typically from a nib. 20 } 21 22 override func didReceiveMemoryWarning() { 23 super.didReceiveMemoryWarning() 24 // Dispose of any resources that can be recreated. 25 } 26 27 28} 29

CustomAlert.swift

swift

1import UIKit 2 3class CustomAlert: UIView ,UIPickerViewDataSource,UIPickerViewDelegate { 4 5 //lepsに関して 6 let item = ["-5","-4","-3","-2","-1","0","1","2","3","4","5",] 7 8 @IBOutlet var myview: UIView! 9 @IBOutlet weak var titlelbl: UILabel! 10 @IBOutlet weak var exlbl: UILabel! 11 @IBOutlet weak var lepstxt: UITextField! 12 @IBOutlet weak var kgtxt: UITextField! 13 @IBOutlet weak var lepslbl: UILabel! 14 @IBOutlet weak var lepspicker: UIPickerView! 15 16 @IBAction func kglbs(_ sender: Any) 17 { 18 switch (sender as AnyObject).selectedSegmentIndex { 19 case 0: 20 //mytableView.text = "kg" 21 print("kg") 22 case 1: 23 //mytableView.text = "lbs" 24 print("lbs") 25 default: break 26 } 27 } 28 29 @IBAction func difficulty(_ sender: Any) 30 { 31 switch (sender as AnyObject).selectedSegmentIndex { 32 case 0: 33 kgtxt.textColor = UIColor.blue 34 case 1: 35 kgtxt.textColor = UIColor.red 36 case 3: 37 kgtxt.textColor = UIColor.darkGray 38 default: break 39 } 40 } 41 42 43 44 45 //コードから 46 override init(frame: CGRect) { 47 super.init(frame: frame) 48 self.commonInit() 49 } 50 51 //ストボーから 52 required init?(coder aDecoder: NSCoder) { 53 super.init(coder: aDecoder) 54 self.commonInit() 55 } 56 57 fileprivate func commonInit() { 58 59 guard let view = UINib(nibName: "CustomAlert", bundle: nil).instantiate(withOwner: self, options: nil).first as? UIView else { 60 return 61 } 62 63 //textfieldに関して 64 lepstxt.placeholder = "個数を入力してください。" 65 kgtxt.placeholder = "値段を入力してください。" 66 lepstxt.font = UIFont(name: "Hiragino Sans", size: 11) 67 kgtxt.font = UIFont(name: "Hiragino Sans", size: 11) 68 69 //デリゲート設定 70 lepspicker.delegate = self 71 lepspicker.dataSource = self 72 //lepspicker.selectedRow(inComponent: 6) 73 //lepspicker.backgroundColor = .gray 74 75 view.frame = self.bounds 76 77 self.addSubview(view) 78 79 } 80 81 @IBAction func cancel(_ sender: Any) { 82 self.removeFromSuperview() 83 } 84 @IBAction func ok(_ sender: Any) { 85 86 let item = lepstxt.text 87 let array = kgtxt.text 88 lepslbl.text = String() 89 //mytbleView.text = String(item,array) 90 } 91 92 93 // PickerViewの列数 94 func numberOfComponents(in pickerView: UIPickerView) -> Int { 95 return 1 96 } 97 98 // PickerViewの行数 99 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 100 return item.count 101 } 102 103 // PickerViewの項目 104 func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 105 return item[row] 106 } 107 108 // PickerViewの項目選択時 109 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 110 111 } 112 113 114}

イメージ説明

やりたいこと
alertで内で入力した二つのtextfieldとlabelとsegmentで選択した文字を横一列に反映させたい。

困っていること
ViewController.swiftにあるtableViewのoutletをCustomAlert.swift内に書こうとすると[Use of unresolved identifier 'mytbleView']とエラーが表示される。
通常のアラートなら入力したものをtableViewに反映させれるのですがxibを使ったやり方はどこのサイトで調べてもそのような記述がなかったのでやり方が分からなくて困っています。

イメージとしては
りんごが1(個) 100[円]
マンゴが2(個) 50[ドル]
のように表示させたい。
()がlabel []がsegment 後はtextfieldです

swift

1@IBAction func ok(_ sender: Any) { 2 let name1 = lepstxt.text 3 //let name2 = lepspicker.textInputMode 4 let name3 = "個" 5 let name4 = "×" 6 let name5 = kgtxt.text 7 8 9 lepstxt.text = String() 10 kgtxt.text = String() 11 print(name1! + name3 + name4 + name5!) 12 let str = "print" 13 delegate?.appendData(str: str) // ViewControllerのメソッドを実行 14 self.removeFromSuperview() 15 }

イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

appendData()に色情報を加えたバージョンです。
(回答1の続きです。なんか追記したらエラー出て更新できなかったので、、、)

ViewController.swift

Swift

1import UIKit 2 3/* 4 PickerViewは乗ってないからUIPickerViewDelegate,UIPickerViewDataSourceはいらない 5 */ 6class ViewController: UIViewController /*,UIPickerViewDelegate,UIPickerViewDataSource*/ { 7 8  // 文字列と色情報を持つAlertDataという構造体 9 struct AlertData { 10 var str:String! 11 var color:UIColor! 12 } 13 14 //var data:[String] = [] 15 var data:[AlertData] = [] 16 17 @IBOutlet weak var mytableView: UITableView! 18 19// var pickerView = UIPickerView() 20// let number = ["回","lep"] 21// let datalist2 = ["kg","lbs"] 22 23 @IBAction func customalertbtr(_ sender: Any) { 24 let customAlert = CustomAlert(frame: CGRect(x: 0.0, y: 0.0, width: 350 , height: 275)) 25 customAlert.center = self.view.center 26 customAlert.backgroundColor = .orange 27 28 // ViewControllerの参照をセット 29 customAlert.delegate = self 30 31 //print(customAlert) //これ追加 32 self.view.addSubview(customAlert) 33 } 34 35 override func viewDidLoad() { 36 super.viewDidLoad() 37 // Do any additional setup after loading the view, typically from a nib. 38 39 mytableView.dataSource = self 40 mytableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell") 41 42 } 43 44 override func didReceiveMemoryWarning() { 45 super.didReceiveMemoryWarning() 46 // Dispose of any resources that can be recreated. 47 } 48 49} 50 51// データ・ソース 52extension ViewController: UITableViewDataSource { 53 54 // データ数 55 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 56 return data.count 57 } 58 59 // セクション数 60 func numberOfSections(in tableView: UITableView) -> Int { 61 return 1 62 } 63 64 // セルの高さ 65 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 66 return 40 67 } 68 69 // セル生成 70 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 71 72 let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) 73 cell.textLabel?.text = data[indexPath.row].str 74 cell.textLabel?.textColor = data[indexPath.row].color 75 76 return cell 77 } 78} 79 80extension ViewController: CustomAlertDelegate { 81 func appendData(str:String,color:UIColor) { 82 // CustomAlertで作成した文字列をデータに追加 83 //data.append(str) 84 85 var alertData = AlertData() 86 alertData.str = str 87 alertData.color = color 88 89 data.append(alertData) 90 91 // tableViewをリロード 92 mytableView.reloadData() 93 94 } 95} 96

CustomAlert.swift

Swift

1import UIKit 2 3// プロトコル 4protocol CustomAlertDelegate { 5 // func appendData(str:String) 6 func appendData(str:String,color:UIColor) 7} 8 9class CustomAlert: UIView ,UIPickerViewDataSource,UIPickerViewDelegate { 10 11 //lepsに関して 12 let item = ["-5","-4","-3","-2","-1","0","1","2","3","4","5",] 13 var lepsSelectedIndex = 0 14 15 let kgLbsArr = ["円","ドル"] 16 var kgLbsSelectedIndex = 0 17 18 let difficulityArr = ["安い","普通","高い"] 19 var difficulitySelectedIndex = 0 20 21 var delegate:CustomAlertDelegate? // 他クラス(今回はViewController)の参照を格納するための変数 22 23 @IBOutlet var myview: UIView! 24 @IBOutlet weak var titlelbl: UILabel! 25 @IBOutlet weak var exlbl: UILabel! 26 @IBOutlet weak var lepstxt: UITextField! 27 @IBOutlet weak var kgtxt: UITextField! 28 @IBOutlet weak var lepslbl: UILabel! 29 @IBOutlet weak var lepspicker: UIPickerView! 30 31 @IBAction func kglbs(_ sender: Any) 32 { 33 switch (sender as AnyObject).selectedSegmentIndex { 34 case 0: 35 //mytableView.text = "kg" 36 print("kg") 37 case 1: 38 //mytableView.text = "lbs" 39 print("lbs") 40 default: break 41 } 42 43 kgLbsSelectedIndex = (sender as! UISegmentedControl).selectedSegmentIndex 44 } 45 46 @IBAction func difficulty(_ sender: Any) 47 { 48 switch (sender as AnyObject).selectedSegmentIndex { 49 case 0: 50 kgtxt.textColor = UIColor.blue 51 case 1: 52 kgtxt.textColor = UIColor.red 53 case 2: //3: 54 kgtxt.textColor = UIColor.darkGray 55 default: break 56 } 57 58 difficulitySelectedIndex = (sender as! UISegmentedControl).selectedSegmentIndex 59 } 60 61 //コードから 62 override init(frame: CGRect) { 63 super.init(frame: frame) 64 self.commonInit() 65 } 66 67 //ストボーから 68 required init?(coder aDecoder: NSCoder) { 69 super.init(coder: aDecoder) 70 self.commonInit() 71 } 72 73 fileprivate func commonInit() { 74 75 guard let view = UINib(nibName: "CustomAlert", bundle: nil).instantiate(withOwner: self, options: nil).first as? UIView else { 76 return 77 } 78 79 //textfieldに関して 80 lepstxt.placeholder = "個数を入力してください。" 81 kgtxt.placeholder = "値段を入力してください。" 82 lepstxt.font = UIFont(name: "Hiragino Sans", size: 11) 83 kgtxt.font = UIFont(name: "Hiragino Sans", size: 11) 84 85 //デリゲート設定 86 lepspicker.delegate = self 87 lepspicker.dataSource = self 88 //lepspicker.selectedRow(inComponent: 6) 89 //lepspicker.backgroundColor = .gray 90 91 view.frame = self.bounds 92 93 self.addSubview(view) 94 95 } 96 97 @IBAction func cancel(_ sender: Any) { 98 self.removeFromSuperview() 99 } 100 @IBAction func ok(_ sender: Any) { 101 102 let lepsVal = lepstxt.text 103 let kgtVal = kgtxt.text 104 let lepsLbl = lepslbl.text 105 let num = item[lepsSelectedIndex] 106 //mytbleView.text = String(item,array) 107 108 let cellString = lepsVal! + "が" + num + "(" + lepsLbl! + ")" + " " + kgtVal! + "[" + kgLbsArr[kgLbsSelectedIndex] + "]" + " " + difficulityArr[difficulitySelectedIndex] 109 110 // テキストと色を渡す 111 delegate?.appendData(str: cellString,color: kgtxt.textColor!) 112 113 self.removeFromSuperview() 114 } 115 116 // PickerViewの列数 117 func numberOfComponents(in pickerView: UIPickerView) -> Int { 118 return 1 119 } 120 121 // PickerViewの行数 122 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 123 return item.count 124 } 125 126 // PickerViewの項目 127 func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 128 return item[row] 129 } 130 131 // PickerViewの項目選択時 132 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 133 lepsSelectedIndex = row 134 } 135 136}

投稿2018/02/19 10:00

fromageblanc

総合スコア2724

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

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

退会済みユーザー

退会済みユーザー

2018/02/19 10:27

delegate?.appendData(str: cellString,color: kgtxt.textColor!)このようにすると以下のエラーが出現します。Extra argument 'color' in call このエラーの場合、直訳するとcolorが余計っていうことですよね?なので色々パターンを試してみたのですがエラーを改善出来ませんでした。 それと仮にkgtxt,textColorで実行できても色が変わるのってkgtxt.textColorだけだと思うのですが一行全体の色を変える場合はcellStringに変えればいいのでしょうか?
fromageblanc

2018/02/19 10:29

全体をよく見てくださいねー
退会済みユーザー

退会済みユーザー

2018/02/19 12:31

// ViewControllerの参照をセット customAlert.delegate = self この部分でエラーが出ていたのですが  Cannot assign value of type 'ViewController' to type 'CustomAlertDelegate?' class ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource,UITableViewDelegate,UITableViewDataSource,CustomAlertDelegate{ このようにしたらエラーが取れました。 やり方としてはあっていますでしょうか? それとあまりextension ViewController: UITableViewDataSource の使い方・意味が分からなかったのでclassの中に纏めたのですが適切では無いんでしょうか? 一応私個人としてのやりたい事は実現できたのですがもし適切でなければ何故適切では無いのかをご教授して頂けたら幸いです。 本当に何から何までご丁寧に教えて頂きありがとうございました。
guest

0

横一列の情報をつくる → CustomAlert
横一列の情報をテーブルに表示 → ViewController

上記を踏まえ、ViewControllerのメソッドをCustomAlertから実行する仕掛けの例です。

ViewController.swift

Swift

1 2 3 @IBAction func btr(_ sender: Any) { 4 let alert = UIAlertController(title: "値を入力してください", message: "\n\n\n\n\n\n\n\n", preferredStyle: .alert) 5 6 // ViewControllerの参照をセット 7 alert.delegate = self 8     ・ 9     ・ 10     ・ 11 12func appendData(str:String) { 13 // CustomAlertで作成した文字列をデータに追加 14   // tableViewをリロード 15} 16

CustomAlert.swift

Swift

1class CustomAlert: UIView ,UIPickerViewDataSource,UIPickerViewDelegate { 2 3 var delgate:ViewController? 4     ・ 5     ・ 6     ・ 7 8 @IBAction func ok(_ sender: Any) { 9 let str = 横一列文字 10 delegate?.appendData(str) // ViewControllerのメソッドを実行 11 } 12

何をやってるのかを理解したあとにデリゲートパタンにリファクタリングするのが良いと思います。

追記:サンプルコード

ViewController.swift

Swift

1import UIKit 2 3/* 4 PickerViewは乗ってないからUIPickerViewDelegate,UIPickerViewDataSourceはいらない 5 */ 6class ViewController: UIViewController /*,UIPickerViewDelegate,UIPickerViewDataSource*/ { 7 8 var data:[String] = [] 9 10 @IBOutlet weak var mytableView: UITableView! 11 12// var pickerView = UIPickerView() 13// let number = ["回","lep"] 14// let datalist2 = ["kg","lbs"] 15 16 @IBAction func customalertbtr(_ sender: Any) { 17 let customAlert = CustomAlert(frame: CGRect(x: 0.0, y: 0.0, width: 350 , height: 275)) 18 customAlert.center = self.view.center 19 customAlert.backgroundColor = .orange 20 21 // ViewControllerの参照をセット 22 customAlert.delegate = self 23 24 //print(customAlert) //これ追加 25 self.view.addSubview(customAlert) 26 } 27 28 override func viewDidLoad() { 29 super.viewDidLoad() 30 // Do any additional setup after loading the view, typically from a nib. 31 32 mytableView.dataSource = self 33 mytableView.register(UITableViewCell.self, forCellReuseIdentifier: "Cell") 34 35 } 36 37 override func didReceiveMemoryWarning() { 38 super.didReceiveMemoryWarning() 39 // Dispose of any resources that can be recreated. 40 } 41 42} 43 44// データ・ソース 45extension ViewController: UITableViewDataSource { 46 47 // データ数 48 func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 49 return data.count 50 } 51 52 // セクション数 53 func numberOfSections(in tableView: UITableView) -> Int { 54 return 1 55 } 56 57 // セルの高さ 58 func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 59 return 40 60 } 61 62 // セル生成 63 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 64 65 let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) 66 cell.textLabel?.text = data[indexPath.row] 67 68 return cell 69 } 70} 71 72extension ViewController: CustomAlertDelegate { 73 func appendData(str:String) { 74 // CustomAlertで作成した文字列をデータに追加 75 data.append(str) 76 // tableViewをリロード 77 mytableView.reloadData() 78 } 79} 80

CustomAlert.swift

Swift

1import UIKit 2 3// プロトコル 4protocol CustomAlertDelegate { 5 func appendData(str:String) 6} 7 8class CustomAlert: UIView ,UIPickerViewDataSource,UIPickerViewDelegate { 9 10 //lepsに関して 11 let item = ["-5","-4","-3","-2","-1","0","1","2","3","4","5",] 12 var lepsSelectedIndex = 0 13 14 let kgLbsArr = ["円","ドル"] 15 var kgLbsSelectedIndex = 0 16 17 let difficulityArr = ["安い","普通","高い"] 18 var difficulitySelectedIndex = 0 19 20 var delegate:CustomAlertDelegate? // 他クラス(今回はViewController)の参照を格納するための変数 21 22 @IBOutlet var myview: UIView! 23 @IBOutlet weak var titlelbl: UILabel! 24 @IBOutlet weak var exlbl: UILabel! 25 @IBOutlet weak var lepstxt: UITextField! 26 @IBOutlet weak var kgtxt: UITextField! 27 @IBOutlet weak var lepslbl: UILabel! 28 @IBOutlet weak var lepspicker: UIPickerView! 29 30 @IBAction func kglbs(_ sender: Any) 31 { 32 switch (sender as AnyObject).selectedSegmentIndex { 33 case 0: 34 //mytableView.text = "kg" 35 print("kg") 36 case 1: 37 //mytableView.text = "lbs" 38 print("lbs") 39 default: break 40 } 41 42 kgLbsSelectedIndex = (sender as! UISegmentedControl).selectedSegmentIndex 43 } 44 45 @IBAction func difficulty(_ sender: Any) 46 { 47 switch (sender as AnyObject).selectedSegmentIndex { 48 case 0: 49 kgtxt.textColor = UIColor.blue 50 case 1: 51 kgtxt.textColor = UIColor.red 52 case 2: //3: 53 kgtxt.textColor = UIColor.darkGray 54 default: break 55 } 56 57 difficulitySelectedIndex = (sender as! UISegmentedControl).selectedSegmentIndex 58 } 59 60 //コードから 61 override init(frame: CGRect) { 62 super.init(frame: frame) 63 self.commonInit() 64 } 65 66 //ストボーから 67 required init?(coder aDecoder: NSCoder) { 68 super.init(coder: aDecoder) 69 self.commonInit() 70 } 71 72 fileprivate func commonInit() { 73 74 guard let view = UINib(nibName: "CustomAlert", bundle: nil).instantiate(withOwner: self, options: nil).first as? UIView else { 75 return 76 } 77 78 //textfieldに関して 79 lepstxt.placeholder = "個数を入力してください。" 80 kgtxt.placeholder = "値段を入力してください。" 81 lepstxt.font = UIFont(name: "Hiragino Sans", size: 11) 82 kgtxt.font = UIFont(name: "Hiragino Sans", size: 11) 83 84 //デリゲート設定 85 lepspicker.delegate = self 86 lepspicker.dataSource = self 87 //lepspicker.selectedRow(inComponent: 6) 88 //lepspicker.backgroundColor = .gray 89 90 view.frame = self.bounds 91 92 self.addSubview(view) 93 94 } 95 96 @IBAction func cancel(_ sender: Any) { 97 self.removeFromSuperview() 98 } 99 @IBAction func ok(_ sender: Any) { 100 101 let lepsVal = lepstxt.text 102 let kgtVal = kgtxt.text 103 let lepsLbl = lepslbl.text 104 let num = item[lepsSelectedIndex] 105 //mytbleView.text = String(item,array) 106 107 let cellString = lepsVal! + "が" + num + "(" + lepsLbl! + ")" + " " + kgtVal! + "[" + kgLbsArr[kgLbsSelectedIndex] + "]" + " " + difficulityArr[difficulitySelectedIndex] 108 // ViewControllerのメソッドを実行 109 delegate?.appendData(str: cellString) 110 // アラート閉じる 111 self.removeFromSuperview() 112 } 113 114 // PickerViewの列数 115 func numberOfComponents(in pickerView: UIPickerView) -> Int { 116 return 1 117 } 118 119 // PickerViewの行数 120 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 121 return item.count 122 } 123 124 // PickerViewの項目 125 func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 126 return item[row] 127 } 128 129 // PickerViewの項目選択時 130 func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 131 lepsSelectedIndex = row 132 } 133 134} 135

投稿2018/02/19 02:09

編集2018/02/19 07:46
fromageblanc

総合スコア2724

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

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

退会済みユーザー

退会済みユーザー

2018/02/19 02:55

表示させたいのは横一列文字じゃないのですが ”let str = 横一列文字”でいいんでしょうか? それとxibで入力した内容をtableViewに反映させたいのですがその場合どうしたらいいですか?
fromageblanc

2018/02/19 03:24

横一列文字はラベルやらの要素を結合したものですよね。さすがにその編集コードは大丈夫ですよね? > それとxibで入力した内容をtableViewに反映させたいのですが その方法を提示したつもりなんですが...コードまるまるないと厳しいですかね?
退会済みユーザー

退会済みユーザー

2018/02/19 04:11

func okの部分は私なりにこのようにしてみたのですが文字を結合する時際はprint(** + ** + **)みたいな形で結合するんですよね? なのでprintで結合してみたのですがテキストフィールドやラベル、ピッカー、セグメントなどをまとめて結合しようとしたのですがExpression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions このようなエラーが出てしまいました。
fromageblanc

2018/02/19 04:47 編集

まずは、String(describing:)を使用しせずに各要素を文字列型に変換してから連結することをおすすめします。 print(String(describing: lepstxt) + item + name1 + name2 + String(describing: kgtxt) + kglbs) では、いろいろとダメです。 String(describing: lepstxt) -> アドレス文字列 item -> ? String(describing: kgtxt) -> アドレス文字列 kglbs -> 関数型
退会済みユーザー

退会済みユーザー

2018/02/19 05:33 編集

質問欄に編集した部分を載せました。一応入力内容がコンソールでは確認できました。でも私としてはpickerで選択した内容とsegmentで選択内容も結合させたいのですがprintの中に入れようとするとエラーが出てしまうのですがどうしたらいいのでしょうか?
fromageblanc

2018/02/19 05:43

pickerって使ってますか?もしかして「個」のところ? segmentalControlのタイトルはselectedIndexを元に自分で文字列をセットしないとだめです。
fromageblanc

2018/02/19 05:52

あー、「-5」のとこがpickerなんですね。
退会済みユーザー

退会済みユーザー

2018/02/19 06:00

kglbsがsegmentなんですけど文字列にすると let name6 = kglbs(<#Any#>)←この中ってどうすればいいのでしょうか? [-5]がピッカーです。それとpickerはlet name2 = lepspicker.textInputModeこのようにしたのですがprintに組み込むとエラーになります。
fromageblanc

2018/02/19 06:05

あとでまとめて解答します
fromageblanc

2018/02/19 09:08 編集

小出しに答えていてもすぐに次でつまずきそうなのでサンプルを追記しました。アウトレット変数はそのままなのでコピペで動くと思います(ただしCustomAlertのインスタンス管理が雑です)。 エラー箇所の原因もそうですがSwift自体を体系的に学習されるとよいかと思います。
退会済みユーザー

退会済みユーザー

2018/02/19 09:12

何から何まで初歩的な部分を含めて教えて頂きありがとうございました。 おかげさまでやりたいことが出来ました。ですが後もう一つお聞きしたことがあるのですがsegmentの「安い、普通、高い」の部分をtableViewに表示させるのではなく安いを選択した場合は赤、普通を選択した場合は黒、高いを選択した場合は青とtableViewに入力が反映された時にそれらの色に変えたいのですがその場合custom.swiftにそれらのコードを追記すればいいのでしょうか?
fromageblanc

2018/02/19 09:23

追記すればいいのでしょう
退会済みユーザー

退会済みユーザー

2018/02/19 09:29

alert内のtextFieldの色は@IBAction func difficulty(_ sender: Any)で変えれるのですが、どうしてもtableViewに反映される時にデフォルトの黒に戻っています。もちろん、tableViewに反映させる時に色を変更させるコードがないので仕方がないのですがどの部分をswitch文でかけばいいのでしょうか?
fromageblanc

2018/02/19 10:01

回答追加したのでソース見ながら把握してください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問