앱의 두 번째 화면에서 modalViewControlle
r을 표시하고 싶습니다. 컨트롤러를 닫으면 첫 번째 화면으로 이동해야합니다. 아래 코드는 iPhone 4, 5 및 iPod Touch에서 잘 작동하지만 iPAD에서는 작동하지 않습니다. 목표는 내가 modalViewController
을 닫을 때 두 번째 화면으로 돌아 가지 않아야하지만 첫 번째 화면을 표시해야합니다. 공유 이메일 클래스에서모달보기 컨트롤러가 닫히는 동안 앱이 깨집니다.
ShareEmail *shareEmail = [[ShareEmail alloc] initWithNibName:[NSString stringWithFormat:@"%@",xibShareEmail] bundle:nil];
shareEmail.fromWer = @"ownPer";
[self presentModalViewController:shareEmail animated:NO];
[shareEmail release];
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES];
[self dismissModalViewControllerAnimated:YES];
당신은 당신의 shareEmail보기 컨트롤러를 유지하기 위해 필요
'shareEmail'을 아직 표시하지 않습니까? –
우선, 사용되지 않는 메소드를 사용하고 있습니다. presentViewController : animated : 완료 및 dismissViewControllerAnimate : 완료를 사용해야합니다. 둘째, 모달 표시된 컨트롤러를 잘못된 클래스에서 제거하는 것입니다. 모달 컨트롤러를 표시하여 클래스를 닫는 것은 클래스의 책임입니다. 코드는 ShareEmail보기 컨트롤러 자체가 아니라 ShareEmail보기 컨트롤러를 할당하고 표시 한 클래스에 있어야합니다. 충돌을 해결할 수는 없지만, 다음 단계에 따라 문제의 원인을 제거하십시오. – petemorris
릴리스는 괜찮습니다. 일반적으로 이러한 메서드에 전달 된 개체를 유지할 책임이 없습니다. 그러나 UIViewController 설명서는이 시점에서 명확하지 않으므로 autorelease를 사용하면 가장 안전 할 것입니다. ARC를 사용하는 것은 릴리스 당황의 가장 좋은 해결책이 될 것입니다! – petemorris