我正在制作占星应用程序,在主视图控制器中,您可以单击一系列按钮以弹出一个弹出屏幕,显示其占星。
我有一个主要功能buttonLayout(),可以为我的ViewController制作所有按钮并设置它们的图像。
点击一个按钮后,我希望它能够显示一个与主视图控制器中点击相同按钮的弹出窗口
我资本化的部分是我无法弄清楚如何做的。
这是我的ViewController代码: // ViewController.swift // Zodiacv2
// PopUpViewController.swift
// Zodiacv2
import UIKit
class PopUpViewController: UIViewController {
@IBOutlet weak var headerlabelPop: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
self.showAnimate()
self.headerlabelPop.text = subHeader
}
func showButton() {
let vc = UIStoryboard(name: "PopUp", bundle: nil).instantiateViewController(withIdentifier: "Main") as! ViewController
}
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)
});
}
@IBAction func closePopUp(_ sender: UIButton) {
removeAnimate()
}
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()
}
});
}
}
这是我的popUp View Controller的代码:
{{1}}
}
在showButton函数中,我想访问索引,所以我可以说sign [index]或者来自buttonLayout()函数的UIButton图像。
答案 0 :(得分:1)
您只需将按钮的值注入新视图控制器即可。 (这是您共享的代码中的代码)
${id}${index}.
但我会改变你呈现按钮的方式。
最好只使用func buttonClicked(_ sender: UIButton) {
let popOverVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "PopUp") as! PopUpViewController
popOverVC.characteristic = sign[sender.tag]
self.addChildViewController(popOverVC)
popOverVC.view.frame = self.view.frame
self.view.addSubview(popOverVC.view)
popOverVC.didMove(toParentViewController: self)
}
,然后处理每个单元格的点击(使用UICollectionView
)。