检查是否按下按钮以获取正确的数据
Checking if button is pressed to segue correct data
您好,这可能是一个简单的问题,如果已经在这里,我深表歉意,我搜索了所有可能的内容,但找不到适合我的具体情况的答案。
问题来了。我目前正在创建一个文本冒险,以使用 Xcode 6 中的 swift 练习一些 iOS 开发,在这种情况下,我的视图控制器中有一个文本视图,它可以滚动到其自身的底部和屏幕底部的 2 个按钮。关键是,如果您按下一个按钮,它会将您带到不同的场景,并且还会更改我在项目中定义的 class UserCharacter 的一些一般字符统计信息,更改一些基本数据,反之亦然。
事情在我的 segue 中,我需要检查用户按下了哪个按钮,这样我就知道要 segue 哪些数据,但不太清楚该怎么做。
这是我目前的情况,(我之前已经传递过一次数据,但不需要做出选择,所以相当简单)
class RouteZeroViewController: UIViewController {
var character : UserCharacter?
@IBAction func choiceOneButton(sender: AnyObject) {
character?.strength += 3
character?.intelligence -= 2
}
@IBAction func choiceTwoButton(sender: AnyObject) {
character?.agility += 2
character?.intelligence += 2
character?.courage -= 2
}
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// set initial textView load at the top instead of middle/bottom
self.textView.scrollRangeToVisible(0)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using [segue destinationViewController].
// check for button one push ????????
var thirdSceneA = segue.destinationViewController as RouteOneAViewController
thirdSceneA.character = character
// check for button two push ????????
var thirdSceneB = segue.destinationViewController as RouteOneBViewController
thirdSceneB.character = character
}
}
如有任何帮助,我们将不胜感激。谢谢..
您需要将 segue 从视图控制器添加到 viewcontroller 参考这个 link : IOS7, Segue and storyboards - How to create without a button?
为每个按钮设置标签 属性,即 1 和 2
在按钮上单击传递按钮
@IBAction func choiceOneButton(sender: AnyObject)
{
character?.strength += 3
character?.intelligence -= 2
self.performSegueWithIdentifier("identifer", sender: sender)
}
@IBAction func choiceTwoButton(sender: AnyObject)
{
character?.agility += 2
character?.intelligence += 2
character?.courage -= 2
self.performSegueWithIdentifier("identifer", sender: sender)
}
准备segue方法检查
override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?)
{
var btn:UIButton=sender as UIButton
if btn.tag==1
{
// First button clicked
}
if btn.tag==2
{
// Second button clicked
}
}
您好,这可能是一个简单的问题,如果已经在这里,我深表歉意,我搜索了所有可能的内容,但找不到适合我的具体情况的答案。
问题来了。我目前正在创建一个文本冒险,以使用 Xcode 6 中的 swift 练习一些 iOS 开发,在这种情况下,我的视图控制器中有一个文本视图,它可以滚动到其自身的底部和屏幕底部的 2 个按钮。关键是,如果您按下一个按钮,它会将您带到不同的场景,并且还会更改我在项目中定义的 class UserCharacter 的一些一般字符统计信息,更改一些基本数据,反之亦然。
事情在我的 segue 中,我需要检查用户按下了哪个按钮,这样我就知道要 segue 哪些数据,但不太清楚该怎么做。
这是我目前的情况,(我之前已经传递过一次数据,但不需要做出选择,所以相当简单)
class RouteZeroViewController: UIViewController {
var character : UserCharacter?
@IBAction func choiceOneButton(sender: AnyObject) {
character?.strength += 3
character?.intelligence -= 2
}
@IBAction func choiceTwoButton(sender: AnyObject) {
character?.agility += 2
character?.intelligence += 2
character?.courage -= 2
}
@IBOutlet weak var textView: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// set initial textView load at the top instead of middle/bottom
self.textView.scrollRangeToVisible(0)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using [segue destinationViewController].
// check for button one push ????????
var thirdSceneA = segue.destinationViewController as RouteOneAViewController
thirdSceneA.character = character
// check for button two push ????????
var thirdSceneB = segue.destinationViewController as RouteOneBViewController
thirdSceneB.character = character
}
}
如有任何帮助,我们将不胜感激。谢谢..
您需要将 segue 从视图控制器添加到 viewcontroller 参考这个 link : IOS7, Segue and storyboards - How to create without a button?
为每个按钮设置标签 属性,即 1 和 2
在按钮上单击传递按钮
@IBAction func choiceOneButton(sender: AnyObject)
{
character?.strength += 3
character?.intelligence -= 2
self.performSegueWithIdentifier("identifer", sender: sender)
}
@IBAction func choiceTwoButton(sender: AnyObject)
{
character?.agility += 2
character?.intelligence += 2
character?.courage -= 2
self.performSegueWithIdentifier("identifer", sender: sender)
}
准备segue方法检查
override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?)
{
var btn:UIButton=sender as UIButton
if btn.tag==1
{
// First button clicked
}
if btn.tag==2
{
// Second button clicked
}
}