PreviewController
: UIViewController
이 문서를 전체 화면으로 표시하는 데 사용되는 부분은 UINavigationViewController
입니다. 위임자는 UISplitViewController
입니다.위임 메서드가 호출되기 전에 UIViewController가 할당 해제됩니다.
밀었을 때 masterView
은 UISplitViewController
입니다.
"뒤로"버튼을 누르면 사라지고 은 UISplitViewController
으로 표시됩니다. (방법 4 - 2가 호출됩니다)
그러나 닫는 방법은 PreviewController
입니다. 이 경우 방법 4 만 호출되고 은 메시지를 보내고 방법 2를 호출하기 전에 PreviewController
이 할당 해제됩니다.
이 문제를 어떻게 해결할 수 있습니까? UISplitViewController
을 위임 메서드라고 부르는 방법이 있습니까? 또는 방법 4에서 PreviewController
을 유지하고 방법 2에서이를 해제 할 수 있습니까 (ARC 사용)?
// Method 1
- (void)viewDidLoad
{
[super viewDidLoad];
self.hideMaster = YES;
UISplitViewController *splitViewController = [(AppDelegate *)[[UIApplication sharedApplication] delegate] splitViewController];
splitViewController.delegate = self;
}
// Method 2
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
return self.hideMaster;
}
// Method 3
- (void)viewWillAppear:(BOOL)animated
{
self.hideMaster = YES;
UISplitViewController *splitViewController = [(AppDelegate *)[[UIApplication sharedApplication] delegate] splitViewController];
[splitViewController.view setNeedsLayout];
[splitViewController willRotateToInterfaceOrientation:self.interfaceOrientation duration:0];
}
// Method 4
- (void)viewWillDisappear:(BOOL)animated
{
self.hideMaster = NO;
UISplitViewController *splitViewController = [(AppDelegate *)[[UIApplication sharedApplication] delegate] splitViewController];
[splitViewController.view setNeedsLayout];
[splitViewController willRotateToInterfaceOrientation:self.interfaceOrientation duration:0];
}
// PreviewController is created in UIViewController which belongs to UINavigationController
PreviewController *previewVC = [[PreviewController alloc] initWithNibName:@"PreviewController" bundle:nil];
previewVC.documentURL = url;
[self.navigationController pushViewController:previewVC animated:YES]
PreviewController 인스턴스는 어디에서 어떻게 생성됩니까? 그뿐 아니라 코드를 게시 할 수 있습니까? – Leijonien
이 정보가 질문 섹션에 추가되었습니다. – GxocT