카테고리 없음

swift 네비게이션 화면 첫화면으로 돌아가는 코드 작성해보자

kingarthur 2024. 7. 15. 18:27

네비게이션 연결하다보면 특정 버튼을 누르면 첫화면으로 돌리고 싶을 경우가 많을 것이다.

계속 앞으로 쌓아 나가도 되지만 필요없는 뷰를 계속 만들 필요는 없다고 생각한다. 

 

그래서 보통 푸쉬 팝을 사용한다. 

 

  NSLayoutConstraint.activate([
      Button.topAnchor.constraint(equalTo: view.topAnchor, constant: 150),
      Button.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -10),
      Button.heightAnchor.constraint(equalToConstant: 30),
      Button.widthAnchor.constraint(equalToConstant: 30)
   ])
        
   Button.addTarget(self, action: #selector(backToMain), for: .touchUpInside)
    
   // 버튼을 누르면 첫 화면으로 이동
    @objc func backToMain() {
        if let navigationController = self.navigationController {
            navigationController.popToRootViewController(animated: true)
        }
    }
    
    // 이건 버튼 누르면 이전꺼 삭제 ~ 
    @objc func popView() {
        self.navigationController?.popViewController(animated: true)
   }
   
   // 이건 스택 쌓아 나아가기 백버튼이 계속 생김 ~
       @objc func goToSecondView() {
            let secondVC = AddButtonViewController()
            navigationController?.pushViewController(secondVC, animated: true)
    }

 

이렇게 작성을 하면 첫 화면으로 돌아가고 화면은 삭제 할 수 있다 ~

그럼 첫 화면에서 다음 화면으로 넘어 갈려면 어떻게 해야할까 

    @objc func goToSecondView() {
            let secondVC = AdmitViewController()
            navigationController?.pushViewController(secondVC, animated: true)
    }

이렇게 푸쉬를 해주면 된다 ~.  

 

저 함수를 버튼에 연결해주면 되겠죠. 

 

까먹지 말고 아자자