如何在 Swift 中将第二个视图控制器链接到随机图像生成器?

How do I link a second view controller to a random image generator in Swift?

提问人:TheOtisLegion 提问时间:11/6/2023 最后编辑:TheOtisLegion 更新时间:11/6/2023 访问量:36

问:

我无法弄清楚如何阻止我的随机图像生成器在到达数组中的最后一个索引时崩溃。我正在尝试让它加载我使用重置按钮创建的第二个视图控制器,该按钮会重新加载初始图像生成器,但无法完全弄清楚如何对其进行编码。 我不想让图像不断循环,我需要它们耗尽,然后重新加载。

即应用程序加载 -> 自动随机播放数组 ->按下按钮直到图像耗尽 ->带有重置按钮的第二个视图控制器以返回主视图控制器,自动随机播放数组并重新生成相同图像的不同变体。

我是编码的新手,所以我很高兴我设法得到了到目前为止我所拥有的那么多,并且非常感谢对我遇到的障碍的任何帮助。

到目前为止,我拥有的代码:

import UIKit


class ViewController: UIViewController {
    
    @IBOutlet weak var mainImageView: UIImageView!
    
    var imageMain = 0

    var array = [ #imageLiteral(resourceName: "raven-988218_1280"), #imageLiteral(resourceName: "halloween-2905531_1280"), #imageLiteral(resourceName: "bird-skull-4433244_1280"), #imageLiteral(resourceName: "candles-1868640_1280"), #imageLiteral(resourceName: "tombstone-2542946_1280"), #imageLiteral(resourceName: "fantasy-2847724_1280") ]
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        mainImageView.image = #imageLiteral(resourceName: "start-image")

        array.shuffle()        
    }    
    
    @IBAction func randomButtonPressed(_ sender: UIButton) {
        //print(imageMain)
            
        mainImageView.image = array[imageMain]
            
        imageMain += 1
        //alternative for random = mainImageArray.randomElement()
    }
}
数组 swift xcode macOS UIVieviceController

评论

0赞 son 11/6/2023
如果达到,我是否正确看到它,它将重置为 0?imageMainarray.count - 1
0赞 Chandaboy 11/6/2023
只需将这一行放进去,如果 imageMain < array.count { mainImageView.image = array[imageMain], imageMain += 1 }

答: 暂无答案