Ios 如何获取在prepareForSegue中启动segue的按钮?
我想使用启动segue的按钮的标题作为出现的视图的标题。有没有办法把那个按钮放在prepareForSegue里?否则,我必须为这件事声明一个不必要的IBOutletIos 如何获取在prepareForSegue中启动segue的按钮?,ios,objective-c,cocoa-touch,segue,Ios,Objective C,Cocoa Touch,Segue,我想使用启动segue的按钮的标题作为出现的视图的标题。有没有办法把那个按钮放在prepareForSegue里?否则,我必须为这件事声明一个不必要的IBOutlet 我使用的是最新的XCode、6 beta 7和iOS 8(还有Swift,虽然这都是cocoa touch,所以ObjC中的答案很好)。PrepareForsgue有以下特征: - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender sender将
我使用的是最新的XCode、6 beta 7和iOS 8(还有Swift,虽然这都是cocoa touch,所以ObjC中的答案很好)。PrepareForsgue有以下特征:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
sender
将是用户点击的UI按钮 沙的回答是正确的。以下是我在Swift中使用的代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "MySegue" {
if let myVC = segue.destinationViewController as? MyViewController {
if let usender:AnyObject = sender {
if let button = usender as? UIButton {
myVC.title = button.titleForState(.Normal)
}
}
}
}
}
然后我注意到新签名有AnyObject!,所以我把它改成:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if segue.identifier == "MySegue" {
if let myVC = segue.destinationViewController as? MyViewController {
if let button = sender as? UIButton {
myVC.title = button.titleForState(.Normal)
}
}
}
}
谢谢这确实奏效,但在swift中有点麻烦。