2017-10-21 150 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