gpt4 book ai didi

ios - 按下一个按钮,并使相同的按钮出现在同一页面上

转载 作者:行者123 更新时间:2023-11-30 12:11:13 25 4
gpt4 key购买 nike

我正在构建一个星座应用程序,其中每个星座都是一个按钮。

当您单击带有您星座的按钮时,屏幕上将出现一个弹出 View Controller 以及您的星座。

我为一个星座/星座构建了该应用程序

enter image description here

同样,每个图像和相应的标志标题都是一个按钮。

因此鱼符号和“双鱼座”一词是一个按钮。

我想添加到我的应用程序中,您可以单击任何星座,它会给您相应的信息。

我首先在界面构建器中构建了我的应用程序,然后添加了代码,因此这可能是我知识空白的来源。

**问题:我想知道是否有办法捕获我设置的图像enter image description here制作每个按钮并将其显示在弹出屏幕上,而不是每次都显示双鱼座的图像。

这是我的 View Controller 类,其中包含主要三个页面的代码

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

}

这是我的弹出 View Controller 类,其中包含弹出 View Controller 的代码(如果您查看界面构建器 map ,则为屏幕的第三行)

//  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 中访问它,但这使我的程序崩溃了。

此外,如果有人有任何结构提示,我会洗耳恭听

最佳答案

你的想法是正确的,但你要做的是:

  1. 在“ShowCharacteristicsPopup”中获取UIImage

  2. 在“ShowCharacteristicsPopup”函数中设置PopUpViewController按钮的UIImage

尝试如下:

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

这行代码位于“self.view.addSubview(popOverVC.view) 之前“一个。

或者您可以移动此行

var buttonImage: UIImage?

要在 PopUpViewController 内部,然后在“ShowCharacteristicsPopup”上设置 popOverVC 的buttonImage,然后您的代码应该可以更改“vc”。到“自己”。

关于ios - 按下一个按钮,并使相同的按钮出现在同一页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46029718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com