2017-09-04 17 views
0

私は、各記号がボタンである星座アプリケーションを構築しています。ボタンを押して同じボタンを同じページに表示させる

あなたのサインがあるボタンをクリックすると、ポップアップビューコントローラがあなたの星座と一緒に画面に表示されます。

私は再びすべての画像とそれに対応する符号のタイトルがボタンである

enter image description here

1記号/占いのためのアプリを構築しました。

したがって、魚の記号と「魚座」という単語は1つのボタンです。

私は任意の星座をクリックすることができます私のアプリに追加したいと、それはあなたに対応する情報を与えるでしょう。

私はインターフェイスビルダで自分のアプリを構築してから、自分の知識の隙間がどこにあるのか分かるようにコードを追加しました。

**質問:私がenter image description here に設定した画像をキャプチャして、それぞれのボタンを作成し、毎回魚座の画像を表示する代わりにPopUp画面に表示させる方法があるかどうかは疑問です。

これは、このポップアップ・ビュー・コントローラのためのコードを有している私のポップアップ・ビュー・コントローラ・クラス(第3主3ページ

// 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. 「ShowCharacteristicsPopup」にUIImageをゲット

だけでなく、「ShowCharacteristicsPopup」機能でPopUpViewControllerのボタンのUIImageを設定します。このコード行は、 "self.view.addSubview(popOverVC.view) " 1前に行く

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

のようなものを試してみてください。

また、あなたが内側にPopUpViewControllerこのライン

var buttonImage: UIImage? 

を移動させることができ、その後、「ShowCharacteristicsPopup」popOverVCのbuttonImageを設定するには、その後、あなたのコードは変更動作するはずです「VCを。」 「自己」に

関連する問題