나는 매우 쉽게 느낀 것을하려고하지만, 나는 그것을 얻을 수없는 것 같습니다. 두 개의 View Controller가 있습니다. iPhone의 회전에 따라 컨트롤러 중 하나를 표시하려고합니다. 앱이 appDelegate에 코드를 삽입하여 전화가 회전하는지 확인할 수 있었지만 회전을 기반으로 View Controller를로드 할 수 없습니다. 아무도 이것으로 나를 도울 수 있습니까? 도움에 미리 감사드립니다.Swift에서 회전을 기반으로 ViewController로드
답변
AppDelegate에서 수행 한 작업이나 탐색, 탭 막대 또는 기타 흐름 구조까지 앱이 구성되는 방식을 알지 못하면 실제로 Apple Developer Library에있는 방법을 제공하고 몇 가지 방법은 사용자의 요구에 맞게 :
override func viewDidLoad() {
// Request to turn on accelerometer and begin receiving accelerometer events
UIDevice.currentDevice().beginGeneratingDeviceOrientationNotifications()
// Add an observer to this class that will trigger a method when it receives an "orientation did change" notification
NSNotificationCenter.defaultCenter().addObserver(self, selector: "orientationChanged:", name: UIDeviceOrientationDidChangeNotification, object: nil)
}
우리는 (지금까지 당신이 기대 컨트롤러가 자연스럽게 먼저 표시하는보기)이 클래스는 방향 통지를 생성하는 시작하는 장치를 물어 첫 번째 요청. 다음으로, 우리는이 클래스에 옵저버를 추가하여 이러한 알림을 받아들이고 다음 알림을받을 때 알림을 표시합니다.
override func orientationChanged(notification: NSNotification) {
// create appropriate view controller for new orientation
let newViewController = customViewControllerClass() // or maybe a storyboard view controller Identifier
// present new view controller
self.presentViewController(newViewController, animated: true) {() -> Void in
// maybe some code here to handle this view while we can still access it easily
// we also don't have to have this presentation be animated
}
여기서 우리는 관찰자가 알림을 수신 할 때 실행되는 방법을 만들었습니다. 여기에서 우리는 원하는 새로운 View Controller를 생성 한 다음 간단히 표시합니다.
두 번째보기 컨트롤러에서 구현할 수도 있지만 대신보기를 관리 할 수있는 탐색 컨트롤러와 같은 일종의 컨트롤 구조를 생각하는 것이 좋습니다. 하나를 사용하면보기 컨트롤러 인스턴스를 탐색 스택에 쉽게 밀어 넣거나 팝 할 수 있습니다. 위의 방법은 쉽고 효과적이지만 기술적으로, 가능하면 끝없이 뷰를 생성하여 서로 위에 표시하는 반면 탐색 기반 구현에서는 실제로 두 개의 뷰를 밀어서 nav 스택에서 튀어 나오게하여 저장합니다 시스템 자원.
또한 컨트롤 구조를 사용하여 뷰를 조건부로로드하면 시스템에 현재 방향을 쿼리하고 개별 뷰에서 모두 수행하지 않고 계속 수행 할 수 있습니다. 위의 Apple Developer Library 링크에 설명 된 마지막 방법을 구현하는 것을 잊지 마십시오. 그러면 Observer가 제거되고 장치 방향 알림 생성이 중지됩니다.
- 1. Swift에서 장치 회전을 강제하는 방법은 무엇입니까?
- 2. three.js의 회전을 기반으로 객체 이동
- 3. iOS ViewController로드 방법 후
- 4. 스위프트 프레임 워크에서 ViewController로드
- 5. x12에서 사용자 정의 viewcontroller로드
- 6. tabbar 컨트롤 내의 viewcontroller로드
- 7. 회전을 기반으로 3 차원 모델 앞으로 이동
- 8. 다른 객체 회전을 기반으로 display 객체 이동
- 9. Swift에서 하나의 구성 요소에 대한 자동 회전을 금지 하시겠습니까?
- 10. viewcontroller로드 한 후 값을 설정하십시오
- 11. Microsoft.XNA.Framework.Rectangle 회전 및 해당 회전을 기반으로 사각형 만들기?
- 12. 다른 스프라이트의 회전을 기반으로 한 스프라이트의 위치 변경
- 13. 회전을 기반으로 XIB 파일을 변경하는 가장 좋은 방법은 무엇입니까?
- 14. Swift에서 UIButton을 어떻게 회전합니까?
- 15. 회전을 부드럽게하기
- 16. iOS - UIViewcontroller 회전을 감지합니까?
- 17. 각도 회전을 google지도로 이동
- 18. iOS가 특정보기에서 회전을 방지합니다.
- 19. 자동 회전을 방지하려면 어떻게해야합니까?
- 20. 벡터 회전을 근사하는 방법
- 21. 회전을 이용한 이상한 움직임
- 22. 시스템이 iPhone 회전을 무시합니다
- 23. 화면의 회전을 제거하려면 어떻게해야합니까?
- 24. 회전을 기준으로 스프라이트 앞에 위치 가져 오기
- 25. 사용자 정의 UITableViewCells (깨진 레코드)를 사용하여 ViewController로드 속도 향상
- 26. Swift에서 응답을 계속 확인하십시오
- 27. Swift에서 MKLocalSearch
- 28. Swift에서 __block
- 29. Swift에서 컨테이너보기
- 30. UIImageView 회전을 연속으로 움직이는 방법