2012-05-14 24 views
0

我遇到了MFMailComposeViewController的取消按鈕的問題。這裏是我的上下文MFMailComposeViewController操作表在iOS5上setStatusBarHidden:YES時不在屏幕上

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
    [[UIApplication sharedApplication] setStatusBarHidden:YES]; 
} 

- (IBAction)showButtonDidTouch:(id)sender { 
    if ([MFMailComposeViewController canSendMail]) { 
     MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init]; 
     mailViewController.mailComposeDelegate = self; 
     mailViewController.modalPresentationStyle = UIModalPresentationFormSheet; 
     [self presentModalViewController:mailViewController animated:YES]; 
     [mailViewController release]; 
} 
} 

我躲在狀態欄的viewDidLoad然後叫顯示mailViewController作爲當前模態視圖控制器。但是,問題是當橫向模式和uikeyboard中的應用出現時,當取消按鈕被點擊爲圖像時,操作表不顯示:http://img651.imageshack.us/img651/5489/screenshot20120514at114.png

左上角的小紅色圖像是操作表。如果我設置statusbarhidden = NO,它會顯示出來。

我感謝您的幫助,通過UIKeyboardWillShowNotification註冊

+0

Soo ....有什麼問題嗎?你期望的行動表是哪裏? – pdriegen

+0

啊,問題是這個動作表是不在屏幕上的,你不能點擊它。我期望它正常顯示,這意味着正好在取消按鈕的上方或下方。它只發生在iOS5上:( – muc

回答

1

我能解決這個問題(這是我看到的是iOS的bug)謝謝。無論何時顯示鍵盤,手動將MFMailComposeViewController的超級視圖的框架設置爲+/- 20(狀態欄高度),具體取決於方向(風景左側或右側)。這是一個非常醜陋的黑客攻擊,但現在對我來說很有用。

+0

感謝您的解決方法。我沒有隱藏狀態欄,因爲這個問題,但現在我必須隱藏它。你的節省我的一天 – muc

-1

我用了一個定時器,移動

[self presentViewController:mc animated:YES completion:^(void) {}]; 

到actionsheet之外,它也可以工作。

相關問題