iOS

iOS5에서는 UIViewController.parentViewController가 nil이다.

Kaiser505 2012. 3. 7. 13:20
iOS5에서부터 UIViewController.parentViewControler이 부모의 UIViewController를 리턴하지않게 되었다. 
그대신 iOS5에서는 새롭게 추가된 presentingViewController를 사용한다.

presentModalViewController에 표시된 ViewController이 자기자신을 닫는경우, 예를들면
iOS4.3까지에는 아래와 같은 코드를 쓸 수 있었다.
[self.parentViewController dismissModalViewControllerAnimated:YES];

iOS5의 경우, parentViewController이 nil이 되기따문에 그대신 presentingViewController를 사용.
두 버전에서 동작시키는 경우에는 이런식으로사용.
if([selfrespondsToSelector:@selector(presentingViewController)])
{
    [self.presentingViewController dismissModalViewControllerAnimated:YES];
}else
{
    [self.parentViewController dismissModalViewControllerAnimated:YES];
}