iOS/오류 해결....

loseButton에서 #selector(didTapClose)를 설정할 때, 클래스 자체에 액션을 추가하면 에러떠요

밤새는 탐험가89 2024. 10. 22. 11:23

 

 

    private let closeButton: UIButton = {
        let button = UIButton()
        button.setImage(UIImage(systemName: "xmark.circle.fill"), for: .normal)
        button.tintColor = .white
        button.addTarget(FullScreenImageViewController.self, action: #selector(didTapClose), for: .touchUpInside)
        return button
    }()

 

 

에러의 원인은 closeButton에서 #selector(didTapClose)를 설정할 때, 클래스 자체에 액션을 추가하려고 한 점 때문입니다. 즉, FullScreenImageViewController.self로 설정했기 때문에 클래스 레벨에서 메서드를 찾으려고 시도하여 에러가 발생한 것입니다.

해결 방법은 #selector(didTapClose)를 호출할 때, 인스턴스 메서드로 연결하도록 변경하는 것입니다.

 

private func setupViews() {
    view.backgroundColor = .black
    view.addSubview(imageView)
    view.addSubview(closeButton)
    
    // 이 부분에서 액션 추가
    closeButton.addTarget(self, action: #selector(didTapClose), for: .touchUpInside)
}

 

'iOS > 오류 해결....' 카테고리의 다른 글

Sandbox: rsync.samba 오류..  (0) 2024.02.22