다음을 의미합니다. 마스터보기와 상세보기를 구분하는 경계선 맨 위에있는 단추는 무엇입니까?
그런 다음 마스터 또는 세부 컨트롤러 중 하나에서 직접 단추를 창에 추가 할 수 있습니다. (이 그래도 가장 좋은 방법인지 잘 모르겠습니다.) 당신은 여기에 세 가지를 고려할 필요가
:
당신이 viewDidLayoutSubviews에서 버튼을 추가 할 때 작동합니다(). viewDidLoad() 또는 viewWillAppear()에서 작동하지 않습니다.
button이 viewDidLayoutSubviews()에서 추가되고 있기 때문에 버튼을 여러 번 만들고 이전 버튼 인스턴스가 유출 된 채로이 메서드를 여러 번 호출 할 가능성이 있습니다. 따라서 버튼에 대한 클래스 인스턴스가 앱의 디자인을 심화시키는 곳으로 생각할 수도 있습니다.
장치가 회전 할 때 버튼의 위치 (또는 상태)에 대해 작동합니다.
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
/// Have a precise logic to centre it
let rect = CGRect(x: 270, y: 200, width: 100, height: 30)
let button = UIButton(frame: rect)
button.setTitle("Test Button", for: .normal)
button.backgroundColor = UIColor.red
button.addTarget(self, action: #selector(MasterViewController.testButtonTapped(sender:)), for: .touchUpInside)
let window = self.view.window
window?.addSubview(button)
window?.bringSubview(toFront: button)
}
func testButtonTapped(sender: UIButton) {
debugPrint("Test button tapped")
}
이 감사하지만 기대 작품으로 봐 : 난 "과 pushViewController"할 "testButtonTapped"과 같은 버튼 appears..how의 ViewController 다음이 될 수에서? –
버튼이 창에 추가되었으므로 전체 라이프 사이클 동안 버튼이 나타납니다. 필요에 따라 버튼을 처리하기 위해 논리를 업데이트하십시오. – Rishi
확인 해 주셔서 감사합니다. :) 한 가지 더, masterviewcontroller에 다시 팝업되면 버튼에 대한 제약이 사라졌습니다 ... 왜? 어떻게 해결할 수 있습니까? –