2011-08-23 90 views
1

我正在使用下面的代碼來顯示應用程序內短信。我的應用沒有狀態欄。 (我在縱向視圖中使用320x480像素的屏幕)iphone MFMessageComposeViewController,狀態欄問題

if ([MFMessageComposeViewController canSendText]) 
    { 
     MFMessageComposeViewController* msgController = [[MFMessageComposeViewController alloc] init]; 
     msgController.recipients = [NSArray arrayWithObject:self.globalSMS]; 
     msgController.messageComposeDelegate = self; 
     [self presentModalViewController:msgController animated:YES]; 
     [msgController release]; 
    } 

這是行之有效的顯示消息視圖控制器。 (但狀態欄回來了,這對我來說不是必需的) 但是問題是,當我點擊「取消」或「發送」時,回到應用程序後,我看到頂部的空白(在位置屏幕的狀態欄)。並且狀態欄被隱藏。 爲什麼當我的狀態欄被設置爲在應用程序委託中隱藏時發生。如何在顯示應用內短信視圖後襬脫空白。

回答

2

我找到了答案。我們必須設置視圖控制器的viewDidLoad方法:

self.wantsFullScreenLayout = YES; 
0

問題出現在縱向視圖中。從我所看到的情況來看,如果MFMessageComposeViewController在橫向加載空間不存在。然後,如果方向更改爲縱向,則版式會更正並且縱向中不存在該空間。

注意在橫向上,MFMessageComposeViewController是通過從左向右滑動呈現的。我相信觀點呈現的方式對於解決問題至關重要。

0
 MFMessageComposeViewController *controller = [[MFMessageComposeViewController alloc] init]; 
     if([MFMessageComposeViewController canSendText]){ 
      controller.body = @"MessageText!!!"; 
      controller.recipients = [NSArray arrayWithObjects:@"123"]; 
      controller.messageComposeDelegate = self; 
      controller.wantsFullScreenLayout = YES; 
      [self presentModalViewController:controller animated:YES]; 
     } 
7

模態顯示消息控制器後隱藏狀態欄。事情是這樣的:

controller.wantsFullScreenLayout = NO; 
[self presentModalViewController:controller animated:YES]; 
[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

這裏還回答:MFMessageComposeViewController not properly displayed

+0

感謝,這確實解決我的問題~~! – flypig