2015-04-01 83 views
0

嗨,這可能是一個簡單的問題,我很抱歉,如果它已經在這裏,我搜索了我可以找到的答案,但無法找到適合我的具體情況的答案。檢查按鈕是否被按下以傳遞正確的數據

這是問題。我目前正在創建一個文本冒險,在Xcode 6中使用swift實踐一些iOS開發,在這種情況下,我的視圖控制器中有一個文本視圖,可以滾動到屏幕底部的底部和2個按鈕。問題的關鍵在於,如果你點擊一個按鈕,它會將你引向不同的場景,並且還會改變我在項目中定義的一個類UserCharacter的一些常規字符統計信息,以更改其他按鈕的一些基本數據,反之亦然。

事情是在我的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 
    } 

} 

任何幫助,將不勝感激。謝謝。

回答

0

你需要從視圖控制器添加順着接下去的ViewController參考以下鏈接:每個按鈕即1和2

按鈕點擊按鈕通IOS7, Segue and storyboards - How to create without a button?

一套標記屬性

@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) 
} 

在準備賽格瑞方法檢查

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 
     } 

} 
+0

啊確定。我認爲對我來說,我很難看到變量,因爲我處於調試模式,但它似乎允許我轉到下一個場景。 雖然有一個問題,如果我們已經在故事板上指定了每個按鈕將帶我們的位置,爲什麼我們必須擁有該行self.performSegueWithIdentifier(「identifier」,sender:sender)? – tokyo0709 2015-04-01 14:42:14

相關問題