2017-05-31 18 views
0

私はいくつかのテーブルビューコントローラでアプリを持っています。各セルの最後の1つに私は別のURLを持っています。 SafariVCを挿入することにしましたが、FirstResponderのようなものです。上記のGIFを見た後予期せぬSafariViewController反応

class Page3: UITableViewController, GADBannerViewDelegate, SFSafariViewControllerDelegate { 

    ... 

    @IBOutlet weak var websiteTextView: UITextView! 

    ... 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     ... 

     websiteTextView.text = goP3.website 

     let safariVC = SFSafariViewController(url: URL(string: goP3.website)!) 
     present(safariVC, animated: true, completion: nil) 
     safariVC.delegate = self 

     ... 
    } 
} 

gif

、私は2つの疑問があります。

第一に。Page3に入ると、SafariViewControllerが自動的に開きます。どうすれば修正できますか?

2st。 URLをクリックすると、SafariViewControllerが開かれません。私はそれを修正するために何をしなければならないのですか? 1)第1回質問回答については

答えて

0

は以下の通りです: あなたがのviewDidLoadメソッドのコードの下に削除する必要があります。 あなたはUIButtonと設定したタイトルを作成する必要があります:2の場合

websiteTextView.text = goP3.website 
let safariVC = SFSafariViewController(url: URL(string: goP3.website)!) 
present(safariVC, animated: true, completion: nil) 
safariVC.delegate = self 

)第二問の答えは以下の通りですgoP3.websiteのテキスト。次に、そのUIButtonのIBActionメソッドを作成します。以下のようなもの

@IBOutlet weak var btnWebsite: UIButton! 
override func viewDidLoad() { 
    super.viewDidLoad() 

    ... 
    btnOK.setTitle(goP3.website, for: .normal) 
} 
@IBAction func btnWebsiteSelect(_ sender: UIButton) { 

    let safariVC = SFSafariViewController(url: URL(string: goP3.website)!) 
    present(safariVC, animated: true, completion: nil) 
    safariVC.delegate = self 
} 
+0

textViewにテキストを表示させるため、 'websiteTextView.text = goP3.website'が必要です。そして、私はボタンが動作するとは思わない。同じテキストビュー内に3つまたは4つのURLがあることがあります。申し訳ありません、私はこのbaforeを説明することを忘れました。別の提案がありますか? –

+1

はい、さまざまな方法があります。しかし、UITextViewのデフォルトの動作は次のとおりです。Safariアプリケーションでのみリンクが開かれます。 このリンクをたどる必要があると思います。あなたが役に立たないと分かったら、教えてください。私は他の解決策でお手伝いします。それが役に立つかどうかここに新しいコメントを追加してください。 https://stackoverflow.com/questions/17278169/ios-add-button-over-nsattributedstring – krunal

+0

私はステップバイステップを読み、確認します。しかし残念なことに、同じtextViewの中に複数のURLがあることがあります。そのため、リンクの上に透明なボタンを置くと、リンクが混乱することになります。 textViewでリンクを開く際のデフォルト/パターンを変更することはできませんか? –

関連する問題