2012-05-14 28 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之外,它也可以工作。

相关问题