2016-10-26 67 views
0

我是故事板編程的新手。我設計了一個故事板(比如SB1),它在視圖控制器中有兩個功能。我有另一個故事板(SB2),它有兩個按鈕。從這兩個按鈕我想要顯示SB1,但是當我按下按鈕1時,然後func1應該執行,如果我按下按鈕2,然後fun2應該執行。有什麼建議麼。具有不同功能的故事板視圖控制器

我的代碼如下。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if let viewController = segue.destinationViewController as? StotyBoard1ViewController 
     where segue.identifier == "LocatorSegue" { 
      viewController.func1() 
    } 
    //how to invoke SB1 Func2 from here 
} 


@IBAction func button1Click(sender: AnyObject) { 
    self.performSegueWithIdentifier("SB1Segue", sender: self) 
} 

@IBAction func button2Click(sender: AnyObject) { 
{ 
    self.performSegueWithIdentifier("SB1Segue", sender: self) 
} 

回答

1

區分你可以做財產以後這樣的: -

@IBOutlet weak var button1: UIButton! 
    @IBOutlet weak var button2: UIButton! 
    var sender: UIButton? 

    func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if let viewController = segue.destinationViewController as? StotyBoard1ViewController { 
     if segue.identifier == "SB1Segue" { 
      if self.sender == button1 { 
       viewController.func1() 
      } else if self.sender == button2 { 
       viewController.func2() 
      } 
     } 
    } 

    @IBAction func button1Click(sender: AnyObject) { 
     self.sender = sender as! UIButton 
     self.performSegueWithIdentifier("SB1Segue", sender: self) 
    } 

    @IBAction func button2Click(sender: AnyObject) { 
    { 
     self.sender = sender as! UIButton 
     self.performSegueWithIdentifier("SB1Segue", sender: self) 
    } 
1

做一個BOOL類型的全局變量的讓我們說isCallFunc1SB1類,現在在你的prepareForSegue分配一個BOOL變量的值的假像這樣

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if let viewController = segue.destinationViewController as? StotyBoard1ViewController 
     if segue.identifier == "SB1Segue" { 
      viewController.isCallFunc1 = true 
    } else { 
      viewController.isCallFunc1 = false 
    } 
} 
不同的按鈕操作爲真

現在在SB1的viewWillAppear根據BOOL變量,您必須調用相應的功能,如

if isCallFunc1 { 
    function1() 
} else { 
    function2() 
} 

也改變button2Click的標識符標識

@IBAction func button1Click(sender: AnyObject) { 
    self.performSegueWithIdentifier("SB1Segue", sender: self) 
} 

@IBAction func button2Click(sender: AnyObject) { 
{ 
    self.performSegueWithIdentifier("SB1SegueOther", sender: self) 
} 
相關問題