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

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

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

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

Swift

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

Q&A

解決済

1回答

989閲覧

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

Yoshi0421

総合スコア15

Xcode

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

Swift

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

0グッド

0クリップ

投稿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

イメージ説明

イメージ説明

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

普通に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

2019/08/26 09:32

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問