2012-03-29 5 views
2

私はSMS送信インターフェイスを表示するためにMFMessageComposeViewControllerを使用しています。MFMessageComposeViewControllerが正しく表示されない

私のアプリはフルスクリーンを使用していますが、ステータスバーはplistファイルの設定によって隠されています(ステータスバーは最初は隠されています=はい)。

私は、メッセージコンポーザを表示する場合:

+(void)composeSMS:(id)sender 
{ 
    if (![MFMessageComposeViewController canSendText]) return; 

    MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 

    controller.wantsFullScreenLayout = YES; 

    controller.messageComposeDelegate = sender; 
    [controller setBody:@"He descubierto un App estupenda! . "]; 
    [controller setModalPresentationStyle:UIModalTransitionStyleFlipHorizontal]; 
    if (controller) [sender presentModalViewController:controller animated:YES]; 
    [controller release]; 

} 

問題は、作曲家が表示されているときにナビゲーションバーがトップY = 0であるが、このバーとビューの出口の残りの部分との間にありますステータスバーと同じサイズの空白が表示されます。ステータスバーはこの画面に表示されています(2番目の問題)が、コンポーザービューのナビゲーションバーと重なっています。

ステータスバーが隠されていない他のプロジェクトでは、これは魅力的です。しかし、これはステータスバーなしで使用される最初のプロジェクトで、これが起こっています。

誰でもどのように修正することができますか?

ありがとうございました。

答えて

2

アプリ内でiMessageを使用する方法は、自分でステータスバーを制御することでした。たとえば :

その後
[[UIApplication sharedApplication] setStatusBarHidden:FALSE withAnimation:UIStatusBarAnimationSlide]; 
MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
controller.messageComposeDelegate = self; 
[self presentModalViewController:controller animated:TRUE]; 
[controller release]; 

送信のいずれかを介して終了または中止する場合:

- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result { 
     [self dismissModalViewControllerAnimated:TRUE]; 
     [[UIApplication sharedApplication] setStatusBarHidden:TRUE withAnimation:UIStatusBarAnimationSlide]; 
     self.view.frame = CGRectMake(0.0, 0.0, [LayoutHelper width], [LayoutHelper height]); 
     self.view.center = CGPointMake([LayoutHelper xCenterPoint], [LayoutHelper yCenterPoint]-20); 
} 

これはIMessageがを表示し、ステータスバーから表示される任意の空きスペースなしでアプリに戻るようです追加または削除されます。

これは私の最初の投稿ですので、何とか役立ちます。あなたモーダルメッセージコントローラを発表した後

歓声

3

は、ステータスバーを非表示にします。このようなもの:

controller.wantsFullScreenLayout = NO; 
[self presentModalViewController:controller animated:YES]; 
[[UIApplication sharedApplication] setStatusBarHidden:YES]; 
関連する問題