我的代码运行没有任何错误,但没有将按钮的标签传递给下一个活动
这是代码
class SecondViewController: UIViewController {
@IBOutlet weak var Properties: UIButton!
@IBOutlet weak var games: UIButton!
@IBOutlet weak var electronics: UIButton!
@IBOutlet weak var Vehicles: UIButton!
@IBOutlet weak var Accessories: UIButton!
@IBOutlet weak var searchTitle: UISearchBar?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var pass:searchResultView = segue.destinationViewController as! searchResultView
if(electronics.selected){
if(searchTitle?.text != nil){
pass.tit = searchTitle?.text
}
pass.received = electronics.titleLabel!.text!
}
else if(games.selected){
if(searchTitle?.text != nil){
pass.tit = searchTitle?.text
}
pass.received = games.titleLabel!.text!
}
else if(Properties.selected){
if(searchTitle?.text != nil){
pass.tit = searchTitle?.text
}
pass.received = Properties.titleLabel!.text!
}
else if(Vehicles.selected){
if(searchTitle?.text != nil){
pass.tit = searchTitle?.text
}
pass.received = Vehicles.titleLabel!.text!
}
else if(Accessories.selected){
if(searchTitle?.text != nil){
pass.tit = searchTitle?.text
}
pass.received = Accessories.titleLabel!.text!
}
}
当我尝试在其他活动中打印字符串时,它不打印任何内容
这是其他活动的代码
class searchResultView: UIViewController {
var received:String = ""
var tit:String? = nil
override func viewDidLoad() {
super.viewDidLoad()
println(received)
println(tit)
println("jsoidjf")
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
请任何人能帮助我,迷路了!
你有两个选择
您需要在“界面生成器”中设置标记的标识符,以检测触发了哪个标记:
Attributes Inspector
并键入一个标识符然后将代码相应地更改为:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var pass:searchResultView = segue.destinationViewController as! searchResultView
if (segue.identifier == "electronicsSegue") {
/* choose the same identifier as in the attribute inspector */
if(searchTitle?.text != nil){
pass.tit = searchTitle?.text
}
pass.received = electronics.titleLabel!.text!
}
}
此版本更易于执行,但不太干净,请检查触发的segue的发送者是否等于您的按钮之一:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
var pass:searchResultView = segue.destinationViewController as! searchResultView
let senderButton = sender as! UIButton
if(senderButton == electronics){
if(searchTitle?.text != nil){
pass.tit = searchTitle?.text
}
pass.received = electronics.titleLabel!.text!
}
}
两种解决方案输出
电子产品
选修的(””)
jsoidjf
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句