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

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

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

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

Swift

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

Q&A

解決済

tableViewの一部をリンク化してwebサイトに移動したい (継承)

Yoshi0421
Yoshi0421

総合スコア15

Xcode

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

Swift

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

1回答

0グッド

0クリップ

839閲覧

投稿2019/08/19 12:05

MapViewを使って特定の位置にピンを置いてタップすると、詳細画面が表示されるアプリを作っているのですが、詳細画面にはテーブルビューを使っており基本的に入力する項目は固定していて、ピン毎の詳細情報が継承しているテーブルビューに渡すようになっています。

それで、今回はテーブルビューの中にホームページの欄をリンク化させてwebサイトに移動したいのですが、どのようにすればいいのかわかりません。

ピンの情報 ↓↓

//春日大社 let annotation5 = MyMKPointAnnotation() annotation5.coordinate = CLLocationCoordinate2DMake(34.1008318,135.5682494) annotation5.title = "春日神社" annotation5.pinColor = UIColor.red annotation5.yomi = "かすがじんじゃ" annotation5.imageSample = [UIImage(named: "春日神社"), UIImage(named: "春日神社_2"), UIImage(named: "春日神社_3")] annotation5.adless = "〒648-0309 奈良県吉野郡野迫川村弓手原162" annotation5.basutei = "野迫川村営バス: 上垣内-弓手原 「弓手原小学校前」から徒歩約1分" annotation5.denwa = "☎︎ ://" annotation5.eigyo = "参拝随時 \n社務所:無" annotation5.kakaku = "価格 ://" annotation5.yasumi = "定休日 ://" annotation5.tyusya = "駐車場 :無" annotation5.homupeji = "HP ://" ←ココ annotation5.sosya = "SNS ://" annotation5.shokai = "紹介文 ://" annotation5.osupoi = "オススメポイント ://" annotation5.category = Category.shrine myMap.addAnnotation(annotation5)

ピンの継承 ↓↓

class MyMKPointAnnotation: MKPointAnnotation { /// アノテーションを継承 var homupeji: String?

ピンの情報をテーブルビューに渡す(詳細画面) ↓↓

ラベルでアウトレット接続していますが、ラベル以外でも構わないです。

class DetailInfoTableViewController: UITableViewController { var annotation: MyMKPointAnnotation? /// ピンの詳細画面のアウトレット接続 @IBOutlet weak var homaPage: UILabel! override func viewDidLoad() { super.viewDidLoad() homaPage.text = annotation?.homupeji

イメージ説明

イメージ説明

ざっくりとして申し訳ないですが、よろしくお願いします。

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

1

ベストアンサー

普通にcellをクリック時に新たなviewにsegueするようにし、
urlをprepareforSegueでpush。
その新たなviewで受け取ったurlを元に
WKWebViewで表示すればいいのでは無いでしょうか???

追記ポイント1
蛇足ですが、普通はDataのクラスを別に用意し、
MyMKAnnotationPointを渡すのではなく、
Dataのクラスそのものを渡すべきですよ。

なぜなら、tableviewにMyMKAnnotationPointは全く無関係なものであるため、
使わないようにすることが、依存するclassを減らし、身軽なコードになります。
また、読んだ人が、???となるのも減らせます。

追記ポイント2
ちなみに、「URL: //」のURL:の部分は定数で準備し、
中身(「https://teratail.com/questions/207007」など)のみをデータで用意し、
描出時にannotation5.homupeji = "URL:" + Data["url"] + "//"などとする方が
「URL:」の打ち間違いが減りますし、例えば「HP:」に変更する場合にも1箇所の変更で済みますよ。

追記ポイント3
あと、tableviewcellのアウトレットは自動生成・reuseされるので、
表示行数分用意するのではなく、
レイアウトが一緒なら1個だけで十分です。

もう一度tableviewのcellの描出のとこを勉強してみてくださいね。

投稿2019/08/19 12:15

編集2019/08/19 14:07
hameji

総合スコア1380

Yoshi0421👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

Yoshi0421

2019/08/26 09:32

コメントありがとうございます!もう一度tableviewのcellなど振り返ってみます!

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Xcode

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

Swift

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