gpt4 book ai didi

swift - 使用 Swift(4.0) 向 .xib 文件中的按钮添加 Action

转载 作者:行者123 更新时间:2023-11-28 14:14:26 25 4
gpt4 key购买 nike

我实现了 View 的水平(分页)幻灯片放映,创建了单独的 xib 并与 View Controller 集成。幻灯片放映按预期工作,但我想为每个 View 添加操作,以便从那里我可以直接移动到各自的主要内容页面。找到下面的幻灯片实现代码。

func createSlides() -> [Slide] {

let slide1:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide

slide1.labelTitle.text = "Page1"

let slide2:Slide = Bundle.main.loadNibNamed("Slide", owner: self, options: nil)?.first as! Slide

slide2.labelTitle.text = "Page2"

return [slide1, slide2]

滑动功能

func setupSlideScrollView(slides : [Slide]) {
scrollView.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
scrollView.contentSize = CGSize(width: view.frame.width * CGFloat(slides.count), height: view.frame.height)
scrollView.isPagingEnabled = true

for i in 0 ..< slides.count {
slides[i].frame = CGRect(x: view.frame.width * CGFloat(i), y: 0, width: view.frame.width, height: view.frame.height)
scrollView.addSubview(slides[i])
}
}

Xib 文件

幻灯片类:UIView {

 @IBOutlet weak var labelTitle: UILabel!


var onClickCallback: (() -> Void)?

override init (frame : CGRect) {
super.init(frame : frame)


}

required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
}

最佳答案

如果我认为您的要求是正确的,那么请执行此操作。 (顺便说一句,我对此有点生疏,所以如果我错了,请不要把我钉在十字架上)。我也不知道你在哪里设计这个,所以我假设它在与 main.viewcontroller 不同的地方。如果它不只是添加一个按钮并创建到内容页面的 segue。

  1. 在 createSlides Func 中创建一个公共(public)变量,并将其设置为您所在的幻灯片。例如:幻灯片 1。当幻灯片 2 打开时,它应该更新 var 2 幻灯片 2。为此,我们将调用 var test
  2. 在您的设计文件中添加一个按钮
  3. 在 View Controller 中添加一个@IBAction。此@IBAction 应与您的按钮链接。
  4. 在这个@IBAction 中使用我们之前创建的变量为内容创建一个segue。 self.performSegue(withIdentifier: test, sender: self)
  5. 在主视图 Controller 中,将两个 segue 从带有幻灯片的 View 添加到带有内容的 View Controller (假设您只有两张幻灯片)。一个 segue 应该称为 slide 1(与您在 createSlides 函数中创建的 let 名称相同。)第二个应该称为 slide 2(原因很明显。)
  6. 现在,当您按下幻灯片 1 中的按钮时,它应该执行 segue 幻灯片 1 并显示您的主要内容

希望我能帮上忙,托比。

此外,如果这不起作用,不是您想要实现的目标或措辞不当,请评论它是什么,我会尝试修复它。

关于swift - 使用 Swift(4.0) 向 .xib 文件中的按钮添加 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52255634/

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