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

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

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

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

Q&A

2回答

977閲覧

swift サイドメニューからの画面遷移

ives

総合スコア19

Swift

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

0グッド

0クリップ

投稿2018/08/24 10:23

編集2022/01/12 10:55

storyboardの画像です

イメージ説明

MenuViewControllerにあるサイドメニューからいくつかあるブラウザを選択しFirstViewControllerにあるWKWebViewに表示させたいです。
問題点はサイドメニュー内にあるセルをタップしたときに対応する値を配列から取得しWKWebViewに表示するところで困っています。コード内の//セルが選択された時と//Segue 準備のところで
Method does not override any method from its superclass
Ambiguous reference to member 'tableView(_:numberOfRowsInSection:)'
Use of unresolved identifier 'array'
の三つのエラーが出て困っています。
教えていただけたら嬉しいです。どうかよろしくお願いします。

MenuViewController

1import UIKit 2 3class MenuViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 4 5 var strArray = ["Youtube","Buzzvideo","Instagram","Twitter","ニコニコ動画","FC2動画","Google"] 6 var counter = 0 7 @IBOutlet weak var menuView: UITableView! 8 @IBAction func Youtube(_ sender: UIButton) 9 { 10 counter = counter + 1 11 print(counter) 12 13 if counter == 2{ 14 self.performSegue(withIdentifier: "goFirstSegue", sender: nil) 15 counter = 0 16 } 17 // 遷移するViewを定義する.このas!はswift1.2では as?だったかと。 18 let FirstViewController: FirstViewController = self.storyboard?.instantiateViewController(withIdentifier: "goFirstViewSegue") as! FirstViewController 19 // Viewの移動する. 20 self.MenutViewController(MenuViewController, animated: true, completion: nil) 21 } 22 23 @IBAction func Buzzvideo(_ sender: UIButton) 24 { 25 counter = counter + 1 26 print(counter) 27 28 if counter == 2{ 29 self.performSegue(withIdentifier: "goFirstSegue2", sender: nil) 30 counter = 0 31 } 32 } 33 @IBAction func Instagram(_ sender: UIButton) 34 { 35 counter = counter + 1 36 print(counter) 37 38 if counter == 2{ 39 self.performSegue(withIdentifier: "goFirstSegue3", sender: nil) 40 counter = 0 41 } 42 } 43 @IBAction func Twitter(_ sender: UIButton) 44 { 45 counter = counter + 1 46 print(counter) 47 48 if counter == 2{ 49 self.performSegue(withIdentifier: "goFirstSegue4", sender: nil) 50 counter = 0 51 } 52 } 53 @IBAction func niconico(_ sender: UIButton) 54 { 55 counter = counter + 1 56 print(counter) 57 58 if counter == 2{ 59 self.performSegue(withIdentifier: "goFirstSegue5", sender: nil) 60 counter = 0 61 } 62 } 63 64 65 override func viewDidLoad() { 66 super.viewDidLoad() 67 68 menuView.delegate = self 69 menuView.dataSource = self 70 71 self.performSegue(withIdentifier: "goFirstViewSegue", sender: nil) 72 } 73 override func prepare(for segue: UIStoryboardSegue, sender: Any?) 74 { 75 if (segue.identifier == "goFirstViewSegue"){} 76 } 77 78 //セルが選択された時 79 func manuView(table: UITableView, didSelectRowAtIndexPath indexPath:NSIndexPath) { 80 self.performSegue(withIdentifier: "goFirstViewSegue",sender: nil) 81 } 82 83 func menuView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) 84 { 85 let cell = menuView.cellForRow(at: indexPath) 86 let indicator = cell?.contentView.viewWithTag(1) as! UIActivityIndicatorView 87 indicator.startAnimating() 88 89 } 90 91 override func didReceiveMemoryWarning() { 92 super.didReceiveMemoryWarning() 93 // Dispose of any resources that can be recreated. 94 } 95 96 override func viewWillAppear(_ animated: Bool) 97 { 98 super.viewWillAppear(animated) 99 100 let menuPos = self.menuView.layer.position 101 self.menuView.layer.position.x = -self.menuView.frame.width 102 UIView.animate( 103 withDuration: 0.5, 104 delay: 0, 105 options: .curveEaseOut, 106 animations: { 107 self.menuView.layer.position.x = menuPos.x 108 }, 109 completion: { bool in}) 110 } 111 112 override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) 113 { 114 super.touchesEnded(touches, with: event) 115 for touch in touches 116 { 117 if touch.view?.tag == 1 118 { 119 UIView.animate(withDuration: 0.2, 120 delay: 0, 121 options: .curveEaseIn, 122 animations: 123 { 124 self.menuView.layer.position.x = -self.menuView.frame.width 125 }, 126 completion: 127 { 128 bool in self.dismiss(animated: true, completion: nil) 129 } 130 ) 131 } 132 } 133 } 134 135 //追加③ セルの個数を指定するデリゲートメソッド(必須) 136 func tableView(_ menuView: UITableView, numberOfRowsInSection section: Int) -> Int { 137 return strArray.count 138 } 139 140 //追加④ セルに値を設定するデータソースメソッド(必須) 141 func tableView(_ menuView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 142 // セルを取得する 143 let cell: UITableViewCell = menuView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 144 // セルに表示する値を設定する 145 cell.textLabel!.text = strArray[indexPath.row] 146 return cell 147 } 148} 149 150 151

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

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

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

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

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

guest

回答2

0

全部教えてくださいと書いてあるように感じますが、前回の僕の回答は受け入れてもらえなかったようですね…。

とりあえず、エラーの件だけ。
① Method does not override any method from its superclass
https://qiita.com/cabbage/items/ed3611305df401baa572
② Ambiguous reference to member 'tableView(_:numberOfRowsInSection:)'
メソッドのオーバーロードと引数(内部引数・外部引数・省略・引数の型など)を調べてください、書き換えてはいけないところが書き換えられていて、Xcodeがよくわかんないと言っています。それと引用元の情報が古いかな?
③ MenuViewControllerにarrayがないんじゃないですか?

投稿2018/08/24 14:13

編集2018/08/24 14:25
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

ives

2018/08/25 04:10

回答ありがとうございます。 ご回答くださる前に助言して頂いた事をやって見たのですが自分だとあってるかわからないので見ていただけたら嬉しいです。 ① MenuViewのtableViewのセルをタップしたときに(セルをタップしたときに対応する値を配列から取得する?) ↓ 一応値を取得するコードを入れて見ました。 ② タップしたセルに対応するURLをFirstViewControllerのWKWebvIewに送って(画面遷移dismissかな?と値渡し) これも見よう見まねで書いて見ましたがあっているかわかりません ③ MenuViewを引っ込めて ↓これは前からうまくいっています ④ 受け取ったURLが表示されるようにWKWebvIewを更新する。 これがきもでなかなか難しいです
退会済みユーザー

退会済みユーザー

2018/08/25 05:50 編集

ピンポイントでわからないことだけを質問したほうがよいのでは?とアドバイスしたつもりですが、覚えてますか? まず自分がわからないことが何かをよく考えてから、一番目にわからないことを質問してください。 それが解決したら次にわからないことを質問されたらどうでしょうか? なので、①→②→③→④と書いて①からやってくださいとお願いしたのですか、伝わってますか? なにがしたくて、どのように解決したいのかよく考えてから質問してください。 ①の場合でいうと、 画面遷移をするきっかけはセルタップですか?ボタンタップですか?両方中途半端に書いてあるみたいですがどっちにしたいんですか? 適当にやっても動きませんよ。
xAxis

2018/08/25 06:16

>tyobigorouさん 素晴らしいタフネス。ですが無理はなされぬようにしてください。
退会済みユーザー

退会済みユーザー

2018/08/25 06:28

>xAxisさん いつもお世話になります。 アドバイス、本当にありがとうございます。
guest

0

もうUITabBarController使いましょう。ライブラリのドキュメント読んで分かんないならそっちの方が早いし楽です。

投稿2018/08/25 03:00

xAxis

総合スコア1349

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問