2011-11-28 6 views
2

tableview에서 MFMailComposeViewController를 보여주고 싶습니다. presentModalViewController:animated: 메서드를 사용하고 싶지 않지만 뷰 컨트롤러를 푸시하면이 테이블 뷰의 다른 애니메이션과 일치합니다.MFMailComposeViewController를 푸시하는 방법은 무엇입니까? (iOS 5)

MFMailComposeViewController은은 UINavigationController 및 탐색 컨트롤러를 밀어가 지원되지 않기 때문에, 내가 사용 :

[[self navigationController] pushViewController:[mailComposer topViewController] animated:YES]; 

이 작동하지만이 취소 버튼을 누를 때이 경고 제공 :

제시를 액션 시트는 superview에 의해 클리핑됩니다. 일부 컨트롤은 터치에 응답하지 않을 수 있습니다. iPhone에서는 - [UIActionSheet showInView :] 대신 [UIActionSheet showFromTabBar :] 또는 - [UIActionSheet showFromToolbar :]를 시도하십시오.

UIActionSheet 하단의 취소 버튼이 접촉에 응답하지 않습니다. 누구든지 MFMailComposeViewController를 푸시 할 수 있는지 여부를 알고 있습니까?

+1

(아이폰 OS 5 이상을에서 실행하는 경우 또는 -presentViewController:animated:completion:) -presentModalViewController:animated: 사용 - _MFMailComposeViewController는 UINavigationController가하고 – beryllium

+0

을 supported_되지 않은 네비게이션 컨트롤러를 밀어하지만 MFMailComposeViewController의 UIViewController에 푸시 할 수 있습니다. 아니면 지원되지 않습니까? – Marco

+0

UIViewController를 푸시 코드 (topViewController가 반환 함). 그것은 정상적인 행동입니다. – beryllium

답변

5

모달보기로 MFMailComposeViewController을 표시하는 것은 Apple의 HIG와 일치합니다. 탐색 스택에 밀어 넣는 것은 아닙니다. 이미 귀하의 질문에 대답

+0

답변 해 주셔서 감사합니다. 좋습니다, MailComposer를 왼쪽에서 오른쪽으로 움직이는 방법은 없습니다. 이 애니메이션이 지원되지 않는다는 것이 조금 이상합니다. 나는 왜 사용자가 "이메일 보내기"기능이 맨 위에서 애니메이트되는지, 그리고이 테이블 뷰의 다른 모든 기능이 오른쪽에서 왼쪽으로 움직이는 애니메이션인지 분명하지 않다고 생각합니다. – Marco

+1

'UIModalTransitionStyleFlipHorizontal'도 사용할 수 있습니다. 그렇지 않으면, 오른쪽에서 왼쪽으로의 전환은 사용자가 정보 계층을 드릴 다운하는 것을 나타 내기위한 것입니다. 메일 작곡가를 발표하는 것은 "행동을 중단하다 (break in the action)"고 의도되었으며 모달 행동 (modal action)을 목적으로합니다. 자체 포함 된 'UINavigationController'컴포넌트에서 뷰 컨트롤러 계층 구조를 가져 오는 것은 애플이 행동이나 구조를 바꿀 때 고장난 애플리케이션을 영수증을 발급받는 것이다. – gschandler

+2

미래의 지식을 위해서,'presentModalViewController : animated :'는 Apple에 의해 사용되지 않으므로'presentViewController : animated : completion :'을 사용해야합니다. –