当我打开设置viewController

时间:2018-05-20 18:16:41

标签: swift

我有地图和放大/缩小按钮作为强大的插座和设置viewController,显示/隐藏设置崩溃应用程序因为出口按钮变为零。如何解决这个问题?

在mainViewController中:

@IBOutlet var zoomIn: UIButton!
@IBOutlet var zoomOut: UIButton!
...

func setZoomFalse(){
    zoomIn.isHidden = true
    zoomOut.isHidden = true
}

func setZoomTrue(){
    zoomIn.isHidden = false
    zoomOut.isHidden = false
}

SettingsViewController已打开:

self.present(self.settingsViewController, animated: true, completion: nil)
从幻灯片菜单中

并且此调用在settingsViewController中发生崩溃:

@objc func switchChanged1(_ sender : UISwitch!){
    let defaults = UserDefaults.standard

    defaults.set(sender.isOn, forKey: settingsView.settingsIsZoom)

    isZoom = sender.isOn

    if isZoom {
        mainViewController.setZoomTrue()
    } else {
        mainViewController.setZoomFalse()
    }
}

1 个答案:

答案 0 :(得分:0)

我通过这种方式解决了这个问题,我在settingsViewController中将全局变量设置为true,它在maonViewController中被定义为全局,在类定义之上,在viewWillApear中检查此变量是否为true,如果是,我调用setZoomTrue并且它适用于此当它从不同的viewController中调用时,它会以nil消息崩溃...