从类'UIViewController'和'UISearchBar'的多继承
问题描述:
我正在努力制作一个应用程序,允许某人在搜索栏中输入文本,并且该应用程序将自动打开“https://www.example.com/(来自搜索栏的文本)。”从类'UIViewController'和'UISearchBar'的多继承
我不断收到构建失败和有关从类UIViewController
和UISearchBar
多重继承的错误
任何帮助,将不胜感激下面
代码:。
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)
}
}
}
}
答
你不需要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
为什么你想延长'UISearchBar'?为什么'viewDidLoad'方法中的searchBarSearchButtonClicked方法? – rmaddy
我应该使用另一种方法吗?谢谢。 – Daagoodr