프로그래밍 방식으로 스토리 보드를 사용하여 뷰 컨트롤러를 푸시하는 다른 방법
프로그래밍 방식으로 스토리 보드에서 인스턴스화 된 뷰 컨트롤러를 푸시하는 다른 방법을 찾고 있습니다. 실제로 다음보기로 이동하는 데 사용하는 방법과 이전보기로 돌아가는 데 사용하는 두 가지 방법을 찾았습니다.
사용
pushViewController
:UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle: nil]; LocationWebView *lvc = [storyboard instantiateViewControllerWithIdentifier:@"LocationWebView"]; [self.navigationController pushViewController:lvc animated:YES];
Segue
프로그래밍 방식으로 수행 :[self performSegueWithIdentifier: @"SongSegue" sender: self];
대안과이 작업을 수행하는 가장 좋은 방법에 대한 힌트가 있습니까? 모달 뷰를 언급하는 것이 아닙니다.
Apple performSegueWithIdentifier:sender:someObject
은를 사용 하여 프로그래밍 방식으로 segue를 수행 할 것을 권장 합니다. 이렇게하면 적어도 몇 가지 이점이 있습니다.
자신의 코드가 적다는 것은 프레임 워크가 더 많은 작업을 수행하도록한다는 것을 의미합니다. Apple이 푸시 세그를위한 멋진 새 시각 효과를 내 놓거나 성능을 향상 시키거나 향후 iOS 릴리스에서 버그를 수정하면 앱에서 무료로 얻을 수 있습니다. 그리고 프레임 워크가 수행 할 수있는 작업을 수행하기 위해 작성하는 모든 코드 줄은 버그 작성 가능성을 높입니다.
IB 가 많을수록 변경하기가 더 쉽습니다. 모든 푸시 세그를 모달 세그로 변경하거나 자신 만의 슈퍼 쿨한 시각 효과를하는 커스텀 세그 유형을 변경하기로 결정한 경우, IB에서 모두 선택하고 사냥 대신 한 번의 클릭으로 세그 유형을 변경할 수 있습니다. 코드에서.
또한 첫 번째 방법을 사용하든 두 번째 방법을 사용하든 이전보기 컨트롤러로 "돌아 가기 위해"보기 컨트롤러를 푸시하는 것은 사용자가 기대하는 방식으로 작동하지 않습니다. 를 푸시 SongViewController
하면 탐색 스택 끝에 추가됩니다.
LocationViewController -> SongViewController
그런 다음 LocationViewController
다시 밀어 "뒤로"이동하는 경우 :
LocationViewController -> SongViewController -> LocationViewController
사용자가 내비게이션 바에서 뒤로 버튼을 누르면 위치보기에서 노래보기로 다시 돌아가 위치보기로 돌아갑니다. (또한이 작업을 계속하면 모든 "뒤로"및 "앞으로"가 계속 증가하는 뷰 컨트롤러 체인에 추가되어 다른 문제가 발생할 수 있습니다.)
대신 내비게이션 컨트롤러가 뒤로 돌아가도록해야합니다. 대부분의 사용 사례를 처리 할 목적으로 탐색 모음에 버튼을 배치합니다. 돌아 가기 위해 자신의 컨트롤을 만들어야하는 경우 IB에서는 iOS 5를 사용할 수 없지만 내비게이션 컨트롤러의 popViewControllerAnimated:
메서드를 사용하여 프로그래밍 방식으로 수행 할 수 있습니다 .
개인적으로 UINavigationController 아래에있는 UIViewController에있을 때 # 2를 사용합니다. UINavigationController가 없으면 작동하지 않을 것이라고 생각합니다.
UITabBarController 아래에있는보기를 사용할 때 다음 코드를 사용하여 다른 탭으로 전환합니다.
NSUInteger tabIndex = 2; // Index of the tab I want to select
UIViewController * viewCtrl = [_tabController.viewControllers objectAtIndex:tabIndex];
_tabController.selectedViewController = viewCtrl;
'program tip' 카테고리의 다른 글
Typescript + React / Redux : 속성 'XXX'가 'IntrinsicAttributes & IntrinsicClassAttributes 유형에 없습니다. (0) | 2020.12.26 |
---|---|
파이썬을위한 대화 형 그래프 라이브러리가 있습니까? (0) | 2020.12.26 |
HTML5 웹 사이트에서 QR 코드 리더를 만드는 방법은 무엇입니까? (0) | 2020.12.26 |
Android Studio 2.0으로 업그레이드 한 후 Gradle 빌드 중 많은 오류 발생 (0) | 2020.12.26 |
Dockerfile의 조건부 ENV (0) | 2020.12.26 |