MFMailComposeViewController操作表在iOS5上setStatusBarHidden:YES时不在屏幕上
我遇到了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注册
我能解决这个问题(这是我看到的是iOS的bug)谢谢。无论何时显示键盘,手动将MFMailComposeViewController的超级视图的框架设置为+/- 20(状态栏高度),具体取决于方向(风景左侧或右侧)。这是一个非常丑陋的黑客攻击,但现在对我来说很有用。
感谢您的解决方法。我没有隐藏状态栏,因为这个问题,但现在我必须隐藏它。你的节省我的一天 – muc
我用了一个定时器,移动
[self presentViewController:mc animated:YES completion:^(void) {}];
到actionsheet之外,它也可以工作。
Soo ....有什么问题吗?你期望的行动表是哪里? – pdriegen
啊,问题是这个动作表是不在屏幕上的,你不能点击它。我期望它正常显示,这意味着正好在取消按钮的上方或下方。它只发生在iOS5上:( – muc