2017-09-04 52 views
0

我正在構建一個星座應用程序,其中每個標誌是一個按鈕。按一個按鈕,並有相同的按鈕出現在同一頁

當您點擊帶有您的標誌的按鈕時,彈出式視圖控制器將隨星座出現在屏幕上。

我建立了該應用,一個符號/星座

enter image description here

再次每個圖像和對應的符號標題是一個按鈕。

所以魚的符號和單詞「雙魚座」是一個按鈕。

我想添加到我的應用程序,你可以點擊任何星座,它會給你相應的信息。

我先在接口生成器中構建了我的應用程序,然後添加了代碼,以便可能是我知識中的差距來自哪裏。

**問題:我想知道是否有方法來捕捉圖像,我設置enter image description here 使每個按鈕,並讓它顯示在彈出屏幕上,而不是每次都顯示雙魚的圖像。

這是具有對於主三個頁面

// ViewController.swift 
// Zodiac 
import UIKit 
class ViewController: UIViewController { 

var buttonImage: UIImage? 

override func viewDidLoad() { 
    super.viewDidLoad() 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 

@IBAction func ShowCharacteristicsPopup(_ sender: UIButton) { 
    let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PopChar") as! PopUpViewController 
    self.addChildViewController(popOverVC) 
    popOverVC.view.frame = self.view.frame 
    self.view.addSubview(popOverVC.view) 
    popOverVC.didMove(toParentViewController: self) 
    //let buttonTitle = sender.title(for: .normal)! 
    //print(buttonTitle) 
    //buttonImage = sender.currentImage! 
    //print(buttonImage) 
} 

@IBAction func ShowDailyPopup(_ sender: UIButton) { 
    let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PopDay") as! PopUpViewController 
    self.addChildViewController(popOverVC) 
    popOverVC.view.frame = self.view.frame 
    self.view.addSubview(popOverVC.view) 
    popOverVC.didMove(toParentViewController: self) 
} 

@IBAction func ShowYearlyPopup(_ sender: UIButton) { 
    let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PopYear") as! PopUpViewController 
    self.addChildViewController(popOverVC) 
    popOverVC.view.frame = self.view.frame 
    self.view.addSubview(popOverVC.view) 
    popOverVC.didMove(toParentViewController: self) 
} 

}

這是我的具有用於彈出視圖控制器的代碼(第三彈出視圖控制器類中的代碼我的視圖控制器類屏幕的行,如果你看一下界面構建地圖)

// PopUpViewController.swift 
// Zodiac 
import UIKit 
class PopUpViewController: UIViewController { 
//@IBOutlet weak var vc: ViewController! 
@IBOutlet weak var popUpButton: UIButton! 


override func viewDidLoad() { 
    super.viewDidLoad() 
    self.showAnimate() 
    //print(vc.buttonImage) 
    //popUpButton.setImage(vc.buttonImage, for: .normal) 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
} 

@IBAction func ClosePopUp(_ sender: UIButton) { 
    removeAnimate() 
} 

func showAnimate() { 
    self.view.transform = CGAffineTransform(scaleX: 1.3,y: 1.3) 
    self.view.alpha = 0.0 
    UIView.animate(withDuration: 0.25, animations: { 
     self.view.alpha = 1.0 
     self.view.transform = CGAffineTransform(scaleX: 1.0,y: 1.0) 
    }); 
} 

func removeAnimate() { 
    UIView.animate(withDuration: 0.25, animations: { 
     self.view.transform = CGAffineTransform(scaleX: 1.3,y: 1.3) 
     self.view.alpha = 0.0 
    }, completion: {(finished : Bool) in 
     if (finished) { 
      self.view.removeFromSuperview() 
     } 
    }); 
} 

}

在ViewController的ShowCharacteristicsPopup函數中,我嘗試獲取sender.currentImage,然後在popupviewcontroller中訪問它,但是這使我的程序崩潰。

此外,如果任何人有任何的結構技巧,我所有的耳朵

回答

0

你有正確的想法,但你必須做的是:

  1. 獲取的UIImage在「ShowCharacteristicsPopup」

  2. 設置爲PopUpViewController的按鈕的UIImage在「ShowCharacteristicsPopup」功能以及

試着這麼做:

popOverVC.popUpButton.setImage(sender.currentImage!, for: .normal) 

這行代碼那張 「self.view.addSubview(popOverVC.view) 」 一個之前。

或者你可以將這一行

var buttonImage: UIImage? 

裏面的PopUpViewController,然後在「ShowCharacteristicsPopup」設置popOverVC的按鈕畫面,那麼你的代碼應該工作改變了「VC」。到「自我」。

相關問題