2017-10-21 151 views
1

我正在努力製作一個應用程序,允許某人在搜索欄中輸入文本,並且該應用程序將自動打開「https://www.example.com/(來自搜索欄的文本)。」從類'UIViewController'和'UISearchBar'的多繼承

我不斷收到構建失敗和有關從類UIViewControllerUISearchBar多重繼承的錯誤

任何幫助,將不勝感激下面

代碼:。

import UIKit 

class ViewController: UIViewController, UISearchBar { 
    override func viewDidLoad() { 
     super.viewDidLoad() 

     func searchBarSearchButtonClicked(_ searchBar: UISearchBar) 
     { 
      searchBar.resignFirstResponder() 
      if let url = URL ("https://www.doughnationgifts.com/",doughnationcode) 
      let doughnationcode = String(searchBar.text!) 
      if #available(iOS 10.0, *) 
      { 
       UIApplication.shared.open(URL, options: [:], completionHandler: nil) 
      } else { 
       UIApplication.shared.openURL(URL) 
      } 
     } 
    } 
} 
+0

爲什麼你想延長'UISearchBar'?爲什麼'viewDidLoad'方法中的searchBarSearchButtonClicked方法? – rmaddy

+0

我應該使用另一種方法嗎?謝謝。 – Daagoodr

回答

0

你不需要UISearchBar繼承,這已經從UIViewController延伸。您可能需要添加UISearchBarDelegate。但是,您還需要爲您的searchBar添加一個插座,以便能夠設置代表。

此外,您不能在viewDidLoad中添加功能。

像這樣做,而不是:

import UIKit 

class ViewController: UIViewController, UISearchBarDelegate { 
    @IBOutlet weak var searchBar: UISearchBar! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     searchBar.delegate = self 
    } 

    func searchBarSearchButtonClicked(_ searchBar: UISearchBar) { 
     searchBar.resignFirstResponder() 
     if let url = URL ("https://www.doughnationgifts.com/",doughnationcode) 
     let doughnationcode = String(searchBar.text!) 
     if #available(iOS 10.0, *) 
     { 
      UIApplication.shared.open(URL, options: [:], completionHandler: nil) 
     } else { 
      UIApplication.shared.openURL(URL) 
     } 
    } 
} 
+0

謝謝!我不再會遇到最初的錯誤,現在我只需要完成剩下的工作。 – Daagoodr