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

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

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

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

Q&A

解決済

2回答

279閲覧

swiftでSafariをひらきたいのですが、Stringを入れられません

KTH

総合スコア86

Swift

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

0グッド

0クリップ

投稿2019/03/04 06:54

編集2019/03/04 15:14

swift

1import UIKit 2import SafariServices 3 4class ViewController: UIViewController { 5 6 7 var Nasdaqstr = """ 8ACIA 9Acacia Communications, Inc. $55.45 $48.29 $24.72 10ACIW 11ACI Worldwide, Inc. $31.65 $31.365 $22.13 12ALEC 13Alector, Inc. $22.50 $22.22 $15.554 14ATAX 15America First Multifamily Investors, L.P. $6.72 $6.71 $5.17 16BNFT 17Benefitfocus, Inc. $60 $59.92 $21.75 18BDSI 19BioDelivery Sciences International, Inc. $5 $4.95 $1.70 20BKCC 21BlackRock Capital Investment Corporation $6.60 $6.53 $5.06 22""" 23 24 25 26 27 @IBOutlet weak var labelTest: UILabel! 28 29 var a = 1 30 31 32 override func viewDidLoad() { 33 super.viewDidLoad() 34 var Nasdaqstri:[String] = Nasdaqstr.components(separatedBy: "\n") 35 36 let co = Nasdaqstri.count 37 let co2 = co/2 38 39 for i in 1...co2{ 40 Nasdaqstri.remove(at: i) 41 } 42 43 print(Nasdaqstri) 44 45 var todayStocks:[String] 46 todayStocks = [] 47 48 49 for str in Nasdaqstri { 50 let last:String = "https://www.marketwatch.com/investing/stock/(str)/charts" 51 print(last) 52 todayStocks.append(last) 53 print(todayStocks) 54 55 } 56 print(todayStocks.count) 57 print(todayStocks.startIndex) 58 59 } 60 61 62 63 64 @IBAction func bookOpen(_ sender: Any) { 65 66// ここを機能させたいのですが、todayStocks[0]をうまいこと書けません、宣言が悪いのでしょうか?switch文は仮の仕様なのでピッカービューとかにしても良いのかなと考えています 67 a += 1 68 switch a { 69 case 1: 70 showSafariVC(for: todayStocks[0]) 71 case 2: 72 showSafariVC(for: todayStocks[1]) 73 case 3: 74 showSafariVC(for: todayStocks[2]) 75 case 4: 76 showSafariVC(for: todayStocks[3]) 77 case 5: 78 showSafariVC(for: todayStocks[4]) 79 case 6: 80 showSafariVC(for: todayStocks[5]) 81 default: 82 showSafariVC(for: todayStocks[0]) 83 } 84 85 86 } 87 88 func showSafariVC(for url: String){ 89 guard let url = URL(string: url) else { 90 91 return 92 93 } 94 95 let safariVC = SFSafariViewController(url: url) 96 present(safariVC,animated: true) 97 98 } 99 100 101 102} 103 104 105

配列を使ってsafariを表示したいのですがどうすればいいのでしょうか?

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

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

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

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

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

guest

回答2

0

自己解決

swift

1import UIKit 2import SafariServices 3import WebKit 4 5var todayStocks:[String] = [] 6var a = 0 7 8class ViewController: UIViewController { 9 10 11 var Nasdaqstr = """ 12CTACU 13ChaSerg Technology Acquisition Corp. $10.17 $10.14 $9.91 14CHMA 15Chiasma, Inc. $5.25 $4.89 $1.20 16SSP

結局クラスの上で宣言しました

投稿2019/03/06 14:43

KTH

総合スコア86

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

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

0

https://developer.apple.com/documentation/uikit/uiapplication/1648685-openurl
一つのURLであれば、上記を利用すれば良いですよ。

配列を使ってsafariを表示したい

の意味がわかりません、具体的にご提示ください。

投稿2019/03/04 08:27

t_obara

総合スコア5488

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

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

KTH

2019/03/04 08:34 編集

私がやりたいのは、ボタンを押すとそのURLに行くというものなのですが、showSafariVC(for: ここにtodayStocksの1番目を入れたい)の部分に配列todayStocksの1番目を入れて開いた後、押したらカウンターで1を足し、戻ると配列の2つ目のURLを開きたいというものです URLそのものではなく、todayStocks[0]みたいな感じで書くにはどうすればいいのでしょうか?
t_obara

2019/03/04 09:07

ご提示いただいた内容を質問内容に更新して追記されるとよろしいかと思います。 ちなみに、閉じたら、配列の内容に沿ったwebページが自動的に表示されるということでしょうか? > URLそのものではなく、todayStocks[0]みたいな感じで これもよくわからないのですが、結局やりたいことはSafari云々は直接関係がなく、ある条件で指定されたNasdaqstrの文字列から、番号を指定することで所定の文字列を取得したいということでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問