从另一个ViewController中的函数捕获var迅速

时间:2017-09-06 14:33:40

标签: ios swift xcode uibutton

我正在制作占星应用程序,在主视图控制器中,您可以单击一系列按钮以弹出一个弹出屏幕,显示其占星。

我有一个主要功能buttonLayout(),可以为我的ViewController制作所有按钮并设置它们的图像。

点击一个按钮后,我希望它能够显示一个与主视图控制器中点击相同按钮的弹出窗口

我资本化的部分是我无法弄清楚如何做的。

main ViewController

clicking a button

the popUp view controller where I want the corresponding button to be displayed

这是我的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图像。

1 个答案:

答案 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)。