하위 뷰에서 상위 뷰의 ViewController를 가져오는 방법은?//모드 출시
4401 단어 return
view controller view , view , view controller push viewController, ( , IOS7 IOS6.1 )
// view controller
- (UIViewController *)viewController
{
for (UIView* next = [self superview]; next; next = next.superview) {
UIResponder *nextResponder = [next nextResponder];
if ([nextResponder isKindOfClass:[UIViewController class]]) {
return (UIViewController *)nextResponder;
}
}
return nil;
}
//
-(void)buttonPress
{
ElectronController *ec=[[ElectronController alloc]init];
[[self viewController].navigationController pushViewController: ec animated:YES];
[ec release];
}
-(void)buttonDown:(id)sender{
ViewTwo *two = [[ViewTwo alloc]init];
two.delegate = self;
two.modalPresentationStyle=UIModalPresentationFullScreen;
two.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;//
[self presentModalViewController:two animated:YES];
}
//[self presentModalViewController:infoViewController animated:YES];// 1
[self presentViewController:infoViewController animated:YES completion:^{// 2
NSLog(@"show InfoView!");
}];
//presentedViewController
NSLog(@"self.presentedViewController=%@",self.presentedViewController);// 3
}
// 1、 2: , 2 presentViewController ; completion , MainViewController viewDidDisappear , 。
3: MainViewController self.presentedViewController, MainViewController present ,
이상 은 코드 실례 아래 는 인터넷 에서 베껴 심심할 때 본 것 으로 보충한 것 이다
1. 주요 용도
팝업 모드 ViewController는 IOS에서 유용하게 사용할 수 있는 기술로 UIKit에서 모드 디스플레이를 위한 ViewController, 예를 들어 UIImagePicker Controller 등을 제공한다.팝업 모드 ViewController는 주로 다음과 같은 시나리오에 사용됩니다.
1. 사용자 입력 정보 수집
2. 일부 내용을 임시로 표현
3. 업무 패턴을 임시로 바꾼다.
4. 해당 장치의 방향 변화(서로 다른 방향에 대해 각각 두 개의 ViewController를 생각하는 경우)
5、새로운view 등급 보이기
이 몇 가지 상황은 프로그램의 정상적인 실행 절차를 잠시 중단하는데, 주요 역할은 정보를 수집하거나 표시하는 것이다.
2. 몇 가지 개념과 자주 사용하는 설정
1、presenting view controller Vs presented view controller
우리가view controller A에서 모드로view controller B를 표시할 때 A는presenting view controller(팝업 VC)를 충당하고 B는presented view controller(팝업 VC)입니다.공식 문서에서 이 두 가지는 delegate를 통해 상호작용을 할 것을 권장합니다. UIImagePicker Controller를 사용하여 시스템 앨범에서 사진을 선택하거나 사진을 찍으면 이미지 Picker Controller와 팝업된 VC 사이가 UIImagePicker Controller Delegate를 통해 상호작용을 하는 것을 알 수 있습니다.따라서 우리는 실제 응용에서 이 원칙을 준수하고 팝업된 VC에서delegate를 정의한 다음에 팝업 VC에서 이 에이전트를 실현하면 비교적 편리하게 양자간의 상호작용을 실현할 수 있다.
2, Modal Presentation Styles(팝업 스타일)
presenting VC의 modalPresentationStyle 속성을 설정하여 View Controller를 팝업할 때의 스타일을 다음과 같은 네 가지 스타일로 설정할 수 있습니다.
typedef enum {
UIModalPresentationFullScreen = 0,
UIModalPresentationPageSheet,
UIModalPresentationFormSheet,
UIModalPresentationCurrentContext,
} UIModalPresentationStyle;
UIModalPresentationFullScreen은 VC를 팝업할 때presented VC가 전체 화면을 가득 채웁니다. VC를 팝업하는wantsFullScreen Layout이 YES로 설정되어 있으면 상태 표시줄 아래로 채워집니다. 그렇지 않으면 상태 표시줄 아래로 채워지지 않습니다.
UIModalPresentationPageSheet은 팝업이 VC일 때presented VC의 높이는 현재 화면의 높이와 같고 너비와 세로 화면 모드의 화면 너비는 같으며 덮어쓰지 않은 영역은 어두워지고 사용자의 클릭을 막는다. 이런 팝업 모드에서는 세로 화면은 UIModalPresentationFullScreen의 효과와 마찬가지로 가로 화면일 때 양쪽이 어두워지는 구역을 남긴다.
UIModalPresentationFormSheet 이런 모드에서presentedVC의 높이와 너비는 모두 화면 크기보다 작고presentedVC는 중간에 표시되며 사방은 어두워진 구역으로 남는다.
UIModalPresentationCurrentContext 이런 모드에서presentedVC의 팝업 방식은presentingVC의 부모VC와 같다.
이 네 가지 방식은 아이패드에 모두 유효하지만, 아이폰과 아이폰 터치 위에 시스템은 항상 UIModal Presentation Full Screen 모드에서presented VC를 표시합니다.
3, Modal Transition Style(팝업 시 애니메이션 스타일)
presenting VC의modalTransitionStyle 속성을 설정하여presented VC를 팝업할 때 장면 전환 애니메이션의 스타일을 설정할 수 있습니다. 그 정의는 다음과 같습니다.
typedef enum {
UIModalTransitionStyleCoverVertical = 0,
UIModalTransitionStyleFlipHorizontal,
UIModalTransitionStyleCrossDissolve,
UIModalTransitionStylePartialCurl,
} UIModalTransitionStyle;
우리는 바닥에서 미끄러져 들어가고 수평으로 뒤집혀 들어가며 교차 용해와 페이지를 넘기는 네 가지 스타일을 선택할 수 있다.이 네 가지 스타일은 기기의 제한을 받지 않는다. 즉, 아이폰이든 아이패드든 우리가 지정한 스타일에 따라 전환 효과를 나타낸다.
4, Dismiss Modal ViewController(팝업된 VC가 사라짐)
presented VC를 사라지면 다음 두 함수 중 하나를 호출해서 완성할 수 있습니다
dismissModalViewControllerAnimated: // , dismissViewControllerAnimated:completion:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
useEffect 안에서의 리턴??인스타 클론하다가 또 다시 배운 기능이다. useEffect안에서 리턴을 한다?? 찾아보니 componentWillUnmount와 같은 효과를 낸다는 것이다. useEffect안에서 return을 하면 정리의 개념으...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.