在我想要的时候执行segues [英] Perform segues when I want
本文介绍了在我想要的时候执行segues的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
晚上,我的VC中有2个show segues。但是我想只在我的pickerView有一个 row.count>时才会触发这些segues。 0
。
Evening, I have 2 show segues in my VC. But I want to fires these segues only when my pickerView has a row.count > 0
.
这就是我所拥有的:
Override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "searchImages" {
if pickerView.numberOfRows(inComponent: 0) > 0 {
let controller = (segue.destination) as! WebViewController
//replacing " " with "+" for google search queries
let type: WebViewController.SearchType = .image
let queryString = String(nameLabel.text!.characters.map {
$0 == " " ? "+" : $0
})
controller.searchType = type
controller.queryString = queryString
print("2")
}
}
if segue.identifier == "searchWiki" {
if pickerView.numberOfRows(inComponent: 0) > 0 {
let controller = (segue.destination) as! WebViewController
//replacing " " with "+" for google search queries
let type: WebViewController.SearchType = .wiki
let queryString = String(nameLabel.text!.characters.map {
$0 == " " ? "+" : $0
})
controller.searchType = type
controller.queryString = queryString
}
}
}
我知道我应该使用: ShouldperformSomething
。但我不知道热用它。
任何提示?
I know I should use: ShouldperformSomething
. But I don't know hot use it.
Any tips?
推荐答案
你应该实现 shouldPerformSegue 而不是检查 pickerView.numberOfRows(inComponent:0)> 0
在 prepareForSegue
方法中。
You should implement shouldPerformSegue instead of checking pickerView.numberOfRows(inComponent: 0) > 0
in your prepareForSegue
method.
PS:Swift 3 Code(我假设这是你想要的。)
override func shouldPerformSegue(withIdentifier identifier: String, sender: Any?) -> Bool {
return pickerView.numberOfRows(inComponent: 0) > 0
}
现在, prepareForSegue
方法应该类似于:
Now, prepareForSegue
method should be similar to:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "searchImages" {
let controller = (segue.destination) as! WebViewController
//replacing " " with "+" for google search queries
let type: WebViewController.SearchType = .image
let queryString = String(nameLabel.text!.characters.map {
$0 == " " ? "+" : $0
})
controller.searchType = type
controller.queryString = queryString
print("2")
}
if segue.identifier == "searchWiki" {
let controller = (segue.destination) as! WebViewController
//replacing " " with "+" for google search queries
let type: WebViewController.SearchType = .wiki
let queryString = String(nameLabel.text!.characters.map {
$0 == " " ? "+" : $0
})
controller.searchType = type
}
}
希望这会有所帮助。
这篇关于在我想要的时候执行segues的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文