我想使用一个按钮的标题来启动一个segue作为另一个按钮的标题出现在视图中。在第一个视图中,我创建了包含在名为Table的数组中的4个按钮。 然后在第二个视图中我只有一个按钮,其标题是触发segue的按钮的名称。以下是我所做的快速概述
@IBOutlet var Table: [UIButton]!
@IBAction func commanderSegue(sender: AnyObject?) {
performSegueWithIdentifier("commander", sender: nil)
print("it works!") }
override func prepareForSegue(segue:UIStoryboardSegue, sender:AnyObject?){
if segue.identifier == "commander" {
print("we can order!")
if let nextVC: OrderViewController = segue.destinationViewController as? OrderViewController {
if let buttonTitle = sender as? UIButton.currentTitle {
nextVC.tablex.titleLabel.text = buttonTitle
print("Miam!")
}
}
}
但它告诉我'当前的标题不是UIButton的成员类型。我该如何解决?感谢任何可以提供帮助的人。
答案 0 :(得分:2)
三件事:
您应该将UIButton
作为sender
commanderSegue
传递给@IBAction
。您知道自己的UIButton
已与某个按钮相关联,因此请将其类型更改为nil
,并将sender
替换为performSegueWithIdentifier
来电中的performSegueWithIdentifier("commander", sender: sender)
。
prepareForSegue
在sender
中,有条件地将UIButton
强制转换为currentTitle
,然后在其上调用if let buttonTitle = (sender as? UIButton)?.currentTitle {
:
@IBOutlet
destinationViewController中的prepareForSegue
未在buttonTitle
时间设置。要解决此问题,请将按钮的标题保存到名为UILabel
的destinationViewController中的属性,然后将其分配给destinationViewController中viewDidLoad
中的var buttonTitle = ""
override func viewDidLoad() {
super.viewDidLoad()
tablex.titleLabel.text = buttonTitle
}
:
@IBOutlet var Table: [UIButton]!
@IBAction func commanderSegue(sender: UIButton) {
performSegueWithIdentifier("commander", sender: sender)
print("it works!")
}
override func prepareForSegue(segue:UIStoryboardSegue, sender:AnyObject?) {
if segue.identifier == "commander" {
print("we can order!")
if let nextVC = segue.destinationViewController as? OrderViewController {
if let buttonTitle = (sender as? UIButton)?.currentTitle {
nextVC.buttonTitle = buttonTitle
print("Miam!")
}
}
}
}
{{1}}
答案 1 :(得分:1)
按钮的标签为import urllib2
urlForCookie = 'http://fundamentus.com.br/graficos.php?papel=CMIG4&tipo=2'
urlForImage = 'http://fundamentus.com.br/graficos3.php?codcvm=2453&tipo=108'
initialRequest = urllib2.Request(urlForCookie)
siteCookie = urllib2.urlopen(req1).headers.get('Set-Cookie')
imageReq = urllib2.Request(urlForImage)
imageReq.add_header('cookie', siteCookie)
with open("image2.pny",'w') as f:
f.write(urllib2.urlopen(req2).read())
f.close()
:
titleLabel
在你的第二个VC中,你需要:
let button = sender as! UIButton
if let buttonTitle = button.titleLabel!.text {
nextVC.buttonText = buttonTitle // Assign the label text to a variable in the next viewController
}
然后您可以将其分配给下一个vc的按钮标题:
var buttonText: String!