1

当单击侧面菜单项之一时,我想更改 Viewcontroller 中的背景图像。

我在执行此过程时正在使用 VIP 架构。

单击侧面菜单上的项目时,以下代码块起作用:

  else if indexPath.row == 1

    {
        switch indexPath.section {
        case 0:
            print("Any ")
            print(indexPath)
        case 1:
            print("Dark Mode ")
          //  self.interactor?.selectThemes(theme: "Dark")
            
            router?.changeTheme(theme: .Dark)
            

        case 2:
            print("Once a day ")
            
        default:
            print("out of range")
        }
    }

然后我想在路由器上做一些事情:

func changeTheme(theme:Themes){
    if Themes.Dark == theme
    {
       var jokegenerate = JokeGenerateController()
        
        jokegenerate.changeBackground(image: UIImage(named: "duck")!)
       
        //print(theme)
        
    }

}

最后,我想更改 viewController 中的图像。我的代码如下:

  func changeBackground(image: UIImage){
    backGroundImage.image = image
    print("hey")
}

但我在这里收到以下错误: 致命错误:在隐式展开可选值时意外发现 nil

我应该怎么做才能修复错误?

4

1 回答 1

1

你应该检查这个链接(代表)

您应该在模块之间创建连接。

class Bakery
{
    var delegate:BakeryDelegate?

    func makeCookie()
    {
        var cookie = Cookie()
        cookie.size = 6
        cookie.hasChocolateChips = true

        delegate?.cookieWasBaked(cookie)
    }
}

class CookieShop: BakeryDelegate
{
    func cookieWasBaked(_ cookie: Cookie)
    {
        print("Yay! A new cookie was baked, with size \(cookie.size)")
    }
}
let shop = CookieShop()

let bakery = Bakery()
bakery.delegate = shop

bakery.makeCookie()

类似的东西。

于 2021-09-10T21:20:27.820 回答